From ff68bf6c2cd9e71be3f58d975904c3c4d4317b11 Mon Sep 17 00:00:00 2001 From: Jack May Date: Tue, 7 Jun 2022 06:45:45 -0700 Subject: [PATCH] quick bail on panic (#25804) --- programs/bpf_loader/src/syscalls.rs | 5 ++++- sdk/src/feature_set.rs | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/programs/bpf_loader/src/syscalls.rs b/programs/bpf_loader/src/syscalls.rs index f4813d9eb0..f5b5b09eef 100644 --- a/programs/bpf_loader/src/syscalls.rs +++ b/programs/bpf_loader/src/syscalls.rs @@ -27,7 +27,7 @@ use { disable_fees_sysvar, do_support_realloc, executables_incur_cpi_data_cost, fixed_memcpy_nonoverlapping_check, libsecp256k1_0_5_upgrade_enabled, limit_secp256k1_recovery_id, prevent_calling_precompiles_as_programs, - return_data_syscall_enabled, secp256k1_recover_syscall_enabled, + quick_bail_on_panic, return_data_syscall_enabled, secp256k1_recover_syscall_enabled, sol_log_data_syscall_enabled, syscall_saturated_math, update_syscall_base_costs, zk_token_sdk_enabled, }, @@ -606,6 +606,9 @@ declare_syscall!( if !invoke_context .feature_set .is_active(&update_syscall_base_costs::id()) + || invoke_context + .feature_set + .is_active(&quick_bail_on_panic::id()) { question_mark!(invoke_context.get_compute_meter().consume(len), result); } diff --git a/sdk/src/feature_set.rs b/sdk/src/feature_set.rs index 65a73b0b41..ecfc8fc0a0 100644 --- a/sdk/src/feature_set.rs +++ b/sdk/src/feature_set.rs @@ -428,6 +428,10 @@ pub mod vote_state_update_credit_per_dequeue { solana_sdk::declare_id!("CveezY6FDLVBToHDcvJRmtMouqzsmj4UXYh5ths5G5Uv"); } +pub mod quick_bail_on_panic { + solana_sdk::declare_id!("DpJREPyuMZ5nDfU6H3WTqSqUFSXAfw8u7xqmWtEwJDcP"); +} + lazy_static! { /// Map of feature identifiers to user-visible description pub static ref FEATURE_NAMES: HashMap = [ @@ -528,6 +532,7 @@ lazy_static! { (separate_nonce_from_blockhash::id(), "separate durable nonce and blockhash domains #25744"), (enable_durable_nonce::id(), "enable durable nonce #25744"), (vote_state_update_credit_per_dequeue::id(), "Calculate vote credits for VoteStateUpdate per vote dequeue to match credit awards for Vote instruction"), + (quick_bail_on_panic::id(), "quick bail on panic"), /*************** ADD NEW FEATURES HERE ***************/ ] .iter()