From 5a4ec28f84b6edc83071eb3a3a8cc35b22f48f62 Mon Sep 17 00:00:00 2001 From: Jack May Date: Wed, 5 Jan 2022 10:50:53 -0800 Subject: [PATCH] cache executors on failed transactions --- runtime/src/bank.rs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index cbaac5b5ceae89..b26b12c06436ab 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -3620,6 +3620,17 @@ impl Bank { self.load_accounts_data_len(), ); + self.update_executors(executors.clone()); + + let status = process_result + .map(|info| { + self.store_accounts_data_len(info.accounts_data_len); + }) + .map_err(|err| { + error_counters.instruction_error += 1; + err + }); + let log_messages: Option = log_collector.and_then(|log_collector| { Rc::try_unwrap(log_collector) @@ -3633,16 +3644,6 @@ impl Bank { loaded_transaction.accounts = transaction_context.deconstruct(); - let status = process_result - .map(|info| { - self.store_accounts_data_len(info.accounts_data_len); - self.update_executors(executors); - }) - .map_err(|err| { - error_counters.instruction_error += 1; - err - }); - TransactionExecutionResult::Executed(TransactionExecutionDetails { status, log_messages,