Skip to content

Commit 105d527

Browse files
authored
Fix debug assert (#22064)
slow.rs workload transactions shouldn't abort, but they can be cancelled
1 parent 529fa75 commit 105d527

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

crates/sui-benchmark/src/lib.rs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ use sui_json_rpc_types::{
2424
SuiTransactionBlockEffectsAPI, SuiTransactionBlockResponseOptions,
2525
};
2626
use sui_sdk::{SuiClient, SuiClientBuilder};
27-
use sui_types::effects::{TransactionEffectsAPI, TransactionEvents};
2827
use sui_types::gas::GasCostSummary;
2928
use sui_types::programmable_transaction_builder::ProgrammableTransactionBuilder;
3029
use sui_types::quorum_driver_types::EffectsFinalityInfo;
@@ -45,6 +44,10 @@ use sui_types::{
4544
base_types::{AuthorityName, SuiAddress},
4645
sui_system_state::SuiSystemStateTrait,
4746
};
47+
use sui_types::{
48+
effects::{TransactionEffectsAPI, TransactionEvents},
49+
execution_status::ExecutionFailureStatus,
50+
};
4851
use tokio::time::sleep;
4952
use tracing::{info, warn};
5053

@@ -152,6 +155,28 @@ impl ExecutionEffects {
152155
}
153156
}
154157

158+
pub fn is_cancelled(&self) -> bool {
159+
match self {
160+
ExecutionEffects::FinalizedTransactionEffects(effects, ..) => {
161+
match effects.data().status() {
162+
sui_types::execution_status::ExecutionStatus::Success => false,
163+
sui_types::execution_status::ExecutionStatus::Failure {
164+
error:
165+
ExecutionFailureStatus::ExecutionCancelledDueToSharedObjectCongestion {
166+
..
167+
},
168+
..
169+
} => true,
170+
_ => false,
171+
}
172+
}
173+
ExecutionEffects::SuiTransactionBlockEffects(sui_tx_effects) => {
174+
let status = format!("{}", sui_tx_effects.status());
175+
status.contains("ExecutionCancelledDueToSharedObjectCongestion")
176+
}
177+
}
178+
}
179+
155180
pub fn status(&self) -> String {
156181
match self {
157182
ExecutionEffects::FinalizedTransactionEffects(effects, ..) => {

crates/sui-benchmark/src/workloads/slow.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ impl std::fmt::Display for SlowTestPayload {
4545
impl Payload for SlowTestPayload {
4646
fn make_new_payload(&mut self, effects: &ExecutionEffects) {
4747
debug_assert!(
48-
effects.is_ok(),
48+
effects.is_ok() || effects.is_cancelled(),
4949
"Slow transactions should never abort: {effects:?}",
5050
);
5151

0 commit comments

Comments
 (0)