Move updating accounts data len from execute to commit (#25256)
This commit is contained in:
parent
8c39648ec6
commit
021276c955
|
@ -351,7 +351,8 @@ pub(crate) mod tests {
|
|||
.unwrap(),
|
||||
)),
|
||||
return_data: None,
|
||||
executed_units: 0u64,
|
||||
executed_units: 0,
|
||||
accounts_data_len_delta: 0,
|
||||
});
|
||||
|
||||
let balances = TransactionBalancesSet {
|
||||
|
|
|
@ -1423,7 +1423,8 @@ mod tests {
|
|||
inner_instructions: None,
|
||||
durable_nonce_fee: nonce.map(DurableNonceFee::from),
|
||||
return_data: None,
|
||||
executed_units: 0u64,
|
||||
executed_units: 0,
|
||||
accounts_data_len_delta: 0,
|
||||
},
|
||||
executors: Rc::new(RefCell::new(Executors::default())),
|
||||
}
|
||||
|
|
|
@ -605,6 +605,9 @@ pub struct TransactionExecutionDetails {
|
|||
pub durable_nonce_fee: Option<DurableNonceFee>,
|
||||
pub return_data: Option<TransactionReturnData>,
|
||||
pub executed_units: u64,
|
||||
/// The change in accounts data len for this transaction.
|
||||
/// NOTE: This value is valid IFF `status` is `Ok`.
|
||||
pub accounts_data_len_delta: i64,
|
||||
}
|
||||
|
||||
/// Type safe representation of a transaction execution attempt which
|
||||
|
@ -4240,9 +4243,6 @@ impl Bank {
|
|||
)
|
||||
.map(|_| info)
|
||||
})
|
||||
.map(|info| {
|
||||
self.update_accounts_data_len(info.accounts_data_len_delta);
|
||||
})
|
||||
.map_err(|err| {
|
||||
match err {
|
||||
TransactionError::InvalidRentPayingAccount
|
||||
|
@ -4255,6 +4255,10 @@ impl Bank {
|
|||
}
|
||||
err
|
||||
});
|
||||
let accounts_data_len_delta = status
|
||||
.as_ref()
|
||||
.map_or(0, |info| info.accounts_data_len_delta);
|
||||
let status = status.map(|_| ());
|
||||
|
||||
let log_messages: Option<TransactionLogMessages> =
|
||||
log_collector.and_then(|log_collector| {
|
||||
|
@ -4299,6 +4303,7 @@ impl Bank {
|
|||
durable_nonce_fee,
|
||||
return_data,
|
||||
executed_units,
|
||||
accounts_data_len_delta,
|
||||
},
|
||||
executors,
|
||||
}
|
||||
|
@ -4809,6 +4814,16 @@ impl Bank {
|
|||
update_executors_time.as_us()
|
||||
);
|
||||
|
||||
let accounts_data_len_delta = execution_results
|
||||
.iter()
|
||||
.filter_map(|execution_result| {
|
||||
execution_result
|
||||
.details()
|
||||
.map(|details| details.accounts_data_len_delta)
|
||||
})
|
||||
.sum();
|
||||
self.update_accounts_data_len(accounts_data_len_delta);
|
||||
|
||||
timings.saturating_add_in_place(ExecuteTimingType::StoreUs, write_time.as_us());
|
||||
timings.saturating_add_in_place(
|
||||
ExecuteTimingType::UpdateStakesCacheUs,
|
||||
|
@ -7311,7 +7326,8 @@ pub(crate) mod tests {
|
|||
inner_instructions: None,
|
||||
durable_nonce_fee: nonce.map(DurableNonceFee::from),
|
||||
return_data: None,
|
||||
executed_units: 0u64,
|
||||
executed_units: 0,
|
||||
accounts_data_len_delta: 0,
|
||||
},
|
||||
executors: Rc::new(RefCell::new(Executors::default())),
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue