From ffa462dd3aa6e6dca37afaa45150ddc3bf36ac03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Mei=C3=9Fner?= Date: Wed, 15 Nov 2023 18:29:31 +0100 Subject: [PATCH] Cleanup - Feature gate of `delay_visibility_of_program_deployment` (#34087) * Cleans up feature gate of delay_visibility_of_program_deployment. * Removes programs_updated_only_for_global_cache. --- accounts-db/src/accounts.rs | 1 - accounts-db/src/transaction_results.rs | 1 - ledger-tool/src/program.rs | 4 --- program-runtime/src/invoke_context.rs | 5 --- program-runtime/src/message_processor.rs | 16 --------- programs/bpf_loader/src/lib.rs | 45 ++++++------------------ runtime/src/bank.rs | 15 -------- runtime/src/bank/tests.rs | 1 - 8 files changed, 11 insertions(+), 77 deletions(-) diff --git a/accounts-db/src/accounts.rs b/accounts-db/src/accounts.rs index 980a09735..0b7c04276 100644 --- a/accounts-db/src/accounts.rs +++ b/accounts-db/src/accounts.rs @@ -1459,7 +1459,6 @@ mod tests { accounts_data_len_delta: 0, }, programs_modified_by_tx: Box::::default(), - programs_updated_only_for_global_cache: Box::::default(), } } diff --git a/accounts-db/src/transaction_results.rs b/accounts-db/src/transaction_results.rs index 7a6401d62..46e59cd4c 100644 --- a/accounts-db/src/transaction_results.rs +++ b/accounts-db/src/transaction_results.rs @@ -34,7 +34,6 @@ pub enum TransactionExecutionResult { Executed { details: TransactionExecutionDetails, programs_modified_by_tx: Box, - programs_updated_only_for_global_cache: Box, }, NotExecuted(TransactionError), } diff --git a/ledger-tool/src/program.rs b/ledger-tool/src/program.rs index c1a65170a..bc44841f8 100644 --- a/ledger-tool/src/program.rs +++ b/ledger-tool/src/program.rs @@ -27,7 +27,6 @@ use { account::AccountSharedData, account_utils::StateMut, bpf_loader_upgradeable::{self, UpgradeableLoaderState}, - feature_set, pubkey::Pubkey, slot_history::Slot, transaction_context::{IndexOfAccount, InstructionAccount}, @@ -358,9 +357,6 @@ fn load_program<'a>( #[allow(unused_mut)] let mut verified_executable = if is_elf { let result = load_program_from_bytes( - invoke_context - .feature_set - .is_active(&feature_set::delay_visibility_of_program_deployment::id()), log_collector, &mut load_program_metrics, &contents, diff --git a/program-runtime/src/invoke_context.rs b/program-runtime/src/invoke_context.rs index db736722f..eaee493bb 100644 --- a/program-runtime/src/invoke_context.rs +++ b/program-runtime/src/invoke_context.rs @@ -167,7 +167,6 @@ pub struct InvokeContext<'a> { accounts_data_meter: AccountsDataMeter, pub programs_loaded_for_tx_batch: &'a LoadedProgramsForTxBatch, pub programs_modified_by_tx: &'a mut LoadedProgramsForTxBatch, - pub programs_updated_only_for_global_cache: &'a mut LoadedProgramsForTxBatch, pub feature_set: Arc, pub timings: ExecuteDetailsTimings, pub blockhash: Hash, @@ -185,7 +184,6 @@ impl<'a> InvokeContext<'a> { compute_budget: ComputeBudget, programs_loaded_for_tx_batch: &'a LoadedProgramsForTxBatch, programs_modified_by_tx: &'a mut LoadedProgramsForTxBatch, - programs_updated_only_for_global_cache: &'a mut LoadedProgramsForTxBatch, feature_set: Arc, blockhash: Hash, lamports_per_signature: u64, @@ -201,7 +199,6 @@ impl<'a> InvokeContext<'a> { accounts_data_meter: AccountsDataMeter::new(prev_accounts_data_len), programs_loaded_for_tx_batch, programs_modified_by_tx, - programs_updated_only_for_global_cache, feature_set, timings: ExecuteDetailsTimings::default(), blockhash, @@ -688,7 +685,6 @@ macro_rules! with_mock_invoke_context { }); let programs_loaded_for_tx_batch = LoadedProgramsForTxBatch::default(); let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default(); - let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default(); let mut $invoke_context = InvokeContext::new( &mut $transaction_context, &sysvar_cache, @@ -696,7 +692,6 @@ macro_rules! with_mock_invoke_context { compute_budget, &programs_loaded_for_tx_batch, &mut programs_modified_by_tx, - &mut programs_updated_only_for_global_cache, Arc::new(FeatureSet::all_enabled()), Hash::default(), 0, diff --git a/program-runtime/src/message_processor.rs b/program-runtime/src/message_processor.rs index e3a0dabd8..c086a6389 100644 --- a/program-runtime/src/message_processor.rs +++ b/program-runtime/src/message_processor.rs @@ -56,7 +56,6 @@ impl MessageProcessor { log_collector: Option>>, programs_loaded_for_tx_batch: &LoadedProgramsForTxBatch, programs_modified_by_tx: &mut LoadedProgramsForTxBatch, - programs_updated_only_for_global_cache: &mut LoadedProgramsForTxBatch, feature_set: Arc, compute_budget: ComputeBudget, timings: &mut ExecuteTimings, @@ -73,7 +72,6 @@ impl MessageProcessor { compute_budget, programs_loaded_for_tx_batch, programs_modified_by_tx, - programs_updated_only_for_global_cache, feature_set, blockhash, lamports_per_signature, @@ -302,7 +300,6 @@ mod tests { ))); let sysvar_cache = SysvarCache::default(); let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default(); - let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default(); let result = MessageProcessor::process_message( &message, &program_indices, @@ -310,7 +307,6 @@ mod tests { None, &programs_loaded_for_tx_batch, &mut programs_modified_by_tx, - &mut programs_updated_only_for_global_cache, Arc::new(FeatureSet::all_enabled()), ComputeBudget::default(), &mut ExecuteTimings::default(), @@ -354,7 +350,6 @@ mod tests { ]), ))); let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default(); - let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default(); let result = MessageProcessor::process_message( &message, &program_indices, @@ -362,7 +357,6 @@ mod tests { None, &programs_loaded_for_tx_batch, &mut programs_modified_by_tx, - &mut programs_updated_only_for_global_cache, Arc::new(FeatureSet::all_enabled()), ComputeBudget::default(), &mut ExecuteTimings::default(), @@ -396,7 +390,6 @@ mod tests { ]), ))); let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default(); - let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default(); let result = MessageProcessor::process_message( &message, &program_indices, @@ -404,7 +397,6 @@ mod tests { None, &programs_loaded_for_tx_batch, &mut programs_modified_by_tx, - &mut programs_updated_only_for_global_cache, Arc::new(FeatureSet::all_enabled()), ComputeBudget::default(), &mut ExecuteTimings::default(), @@ -528,7 +520,6 @@ mod tests { ))); let sysvar_cache = SysvarCache::default(); let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default(); - let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default(); let result = MessageProcessor::process_message( &message, &program_indices, @@ -536,7 +527,6 @@ mod tests { None, &programs_loaded_for_tx_batch, &mut programs_modified_by_tx, - &mut programs_updated_only_for_global_cache, Arc::new(FeatureSet::all_enabled()), ComputeBudget::default(), &mut ExecuteTimings::default(), @@ -564,7 +554,6 @@ mod tests { Some(transaction_context.get_key_of_account_at_index(0).unwrap()), ))); let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default(); - let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default(); let result = MessageProcessor::process_message( &message, &program_indices, @@ -572,7 +561,6 @@ mod tests { None, &programs_loaded_for_tx_batch, &mut programs_modified_by_tx, - &mut programs_updated_only_for_global_cache, Arc::new(FeatureSet::all_enabled()), ComputeBudget::default(), &mut ExecuteTimings::default(), @@ -597,7 +585,6 @@ mod tests { Some(transaction_context.get_key_of_account_at_index(0).unwrap()), ))); let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default(); - let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default(); let result = MessageProcessor::process_message( &message, &program_indices, @@ -605,7 +592,6 @@ mod tests { None, &programs_loaded_for_tx_batch, &mut programs_modified_by_tx, - &mut programs_updated_only_for_global_cache, Arc::new(FeatureSet::all_enabled()), ComputeBudget::default(), &mut ExecuteTimings::default(), @@ -687,7 +673,6 @@ mod tests { Arc::new(LoadedProgram::new_builtin(0, 0, MockBuiltin::vm)), ); let mut programs_modified_by_tx = LoadedProgramsForTxBatch::default(); - let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::default(); let result = MessageProcessor::process_message( &message, &[vec![0], vec![1]], @@ -695,7 +680,6 @@ mod tests { None, &programs_loaded_for_tx_batch, &mut programs_modified_by_tx, - &mut programs_updated_only_for_global_cache, Arc::new(FeatureSet::all_enabled()), ComputeBudget::default(), &mut ExecuteTimings::default(), diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index c8af4ba3c..dcaa4e660 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -34,10 +34,9 @@ use { clock::Slot, entrypoint::{MAX_PERMITTED_DATA_INCREASE, SUCCESS}, feature_set::{ - bpf_account_data_direct_mapping, delay_visibility_of_program_deployment, - enable_bpf_loader_extend_program_ix, enable_bpf_loader_set_authority_checked_ix, - enable_program_redeployment_cooldown, native_programs_consume_cu, - remove_bpf_loader_incorrect_program_id, + bpf_account_data_direct_mapping, enable_bpf_loader_extend_program_ix, + enable_bpf_loader_set_authority_checked_ix, enable_program_redeployment_cooldown, + native_programs_consume_cu, remove_bpf_loader_incorrect_program_id, }, instruction::{AccountMeta, InstructionError}, loader_instruction::LoaderInstruction, @@ -66,7 +65,6 @@ pub const UPGRADEABLE_LOADER_COMPUTE_UNITS: u64 = 2_370; #[allow(clippy::too_many_arguments)] pub fn load_program_from_bytes( - delay_visibility_of_program_deployment: bool, log_collector: Option>>, load_program_metrics: &mut LoadProgramMetrics, programdata: &[u8], @@ -76,11 +74,7 @@ pub fn load_program_from_bytes( program_runtime_environment: Arc>>, reloading: bool, ) -> Result { - let effective_slot = if delay_visibility_of_program_deployment { - deployment_slot.saturating_add(DELAY_VISIBILITY_SLOT_OFFSET) - } else { - deployment_slot - }; + let effective_slot = deployment_slot.saturating_add(DELAY_VISIBILITY_SLOT_OFFSET); let loaded_program = if reloading { // Safety: this is safe because the program is being reloaded in the cache. unsafe { @@ -150,7 +144,6 @@ macro_rules! deploy_program { load_program_metrics.verify_code_us = verify_code_time.as_us(); // Reload but with environments.program_runtime_v1 let executor = load_program_from_bytes( - $invoke_context.feature_set.is_active(&delay_visibility_of_program_deployment::id()), $invoke_context.get_log_collector(), &mut load_program_metrics, $new_programdata, @@ -1228,28 +1221,13 @@ fn process_loader_upgradeable_instruction( &log_collector, )?; let clock = invoke_context.get_sysvar_cache().get_clock()?; - if invoke_context - .feature_set - .is_active(&delay_visibility_of_program_deployment::id()) - { - invoke_context.programs_modified_by_tx.replenish( - program_key, - Arc::new(LoadedProgram::new_tombstone( - clock.slot, - LoadedProgramType::Closed, - )), - ); - } else { - invoke_context - .programs_updated_only_for_global_cache - .replenish( - program_key, - Arc::new(LoadedProgram::new_tombstone( - clock.slot, - LoadedProgramType::Closed, - )), - ); - } + invoke_context.programs_modified_by_tx.replenish( + program_key, + Arc::new(LoadedProgram::new_tombstone( + clock.slot, + LoadedProgramType::Closed, + )), + ); } _ => { ic_logger_msg!(log_collector, "Invalid Program account"); @@ -1711,7 +1689,6 @@ pub mod test_utils { .expect("Failed to get account key"); if let Ok(loaded_program) = load_program_from_bytes( - true, None, &mut load_program_metrics, account.data(), diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index fb54a36e9..61d8402b7 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -4733,8 +4733,6 @@ impl Bank { ProgramAccountLoadResult::ProgramOfLoaderV1orV2(program_account) => { solana_bpf_loader_program::load_program_from_bytes( - self.feature_set - .is_active(&feature_set::delay_visibility_of_program_deployment::id()), None, &mut load_program_metrics, program_account.data(), @@ -4756,8 +4754,6 @@ impl Bank { .ok_or(InstructionError::InvalidAccountData) .and_then(|programdata| { solana_bpf_loader_program::load_program_from_bytes( - self.feature_set - .is_active(&feature_set::delay_visibility_of_program_deployment::id()), None, &mut load_program_metrics, programdata, @@ -4915,10 +4911,6 @@ impl Bank { self.slot, programs_loaded_for_tx_batch.environments.clone(), ); - let mut programs_updated_only_for_global_cache = LoadedProgramsForTxBatch::new( - self.slot, - programs_loaded_for_tx_batch.environments.clone(), - ); let mut process_message_time = Measure::start("process_message_time"); let process_result = MessageProcessor::process_message( tx.message(), @@ -4927,7 +4919,6 @@ impl Bank { log_collector.clone(), programs_loaded_for_tx_batch, &mut programs_modified_by_tx, - &mut programs_updated_only_for_global_cache, self.feature_set.clone(), compute_budget, timings, @@ -5027,9 +5018,6 @@ impl Bank { accounts_data_len_delta, }, programs_modified_by_tx: Box::new(programs_modified_by_tx), - programs_updated_only_for_global_cache: Box::new( - programs_updated_only_for_global_cache, - ), } } @@ -5312,7 +5300,6 @@ impl Bank { if let TransactionExecutionResult::Executed { details, programs_modified_by_tx, - programs_updated_only_for_global_cache: _, } = &result { // Update batch specific cache of the loaded programs with the modifications @@ -5689,13 +5676,11 @@ impl Bank { if let TransactionExecutionResult::Executed { details, programs_modified_by_tx, - programs_updated_only_for_global_cache, } = execution_result { if details.status.is_ok() { let mut cache = self.loaded_programs_cache.write().unwrap(); cache.merge(programs_modified_by_tx); - cache.merge(programs_updated_only_for_global_cache); } } } diff --git a/runtime/src/bank/tests.rs b/runtime/src/bank/tests.rs index 50d68c6cd..dcbf80650 100644 --- a/runtime/src/bank/tests.rs +++ b/runtime/src/bank/tests.rs @@ -204,7 +204,6 @@ fn new_execution_result( accounts_data_len_delta: 0, }, programs_modified_by_tx: Box::::default(), - programs_updated_only_for_global_cache: Box::::default(), } }