Skip to content

Commit 7c35800

Browse files
committed
inspect error
1 parent 9bf223d commit 7c35800

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

stackslib/src/cli.rs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,13 @@ fn replay_block(
828828
true,
829829
) {
830830
Ok((receipt, _, _)) => {
831-
info!("Cost check skipped. Block processed successfully! block = {block_id}");
831+
if receipt.anchored_block_cost != cost {
832+
println!("Failed processing block! block = {block_id}. Unexpected cost. expected = {cost}, evaluated = {}",
833+
receipt.anchored_block_cost);
834+
process::exit(1);
835+
}
836+
837+
info!("Block processed successfully! block = {block_id}");
832838
}
833839
Err(e) => {
834840
println!("Failed processing block! block = {block_id}, error = {e:?}");
@@ -863,7 +869,10 @@ fn replay_naka_staging_block(db_path: &str, index_block_hash_hex: &str, conf: &C
863869
None,
864870
true,
865871
)
866-
.unwrap();
872+
.unwrap_or_else(|err| {
873+
eprintln!("SortitionDB::connect failed: {:?}", err);
874+
panic!("SortitionDB::connect failed"); // still panic like unwrap()
875+
});
867876

868877
let (block, block_size) = chainstate
869878
.nakamoto_blocks_db()
@@ -1137,6 +1146,15 @@ fn replay_block_nakamoto(
11371146
Err(e) => (None, Some(e)),
11381147
};
11391148

1149+
if let Some(receipt) = ok_opt {
1150+
// check the cost
1151+
let evaluated_cost = receipt.anchored_block_cost.clone();
1152+
if evaluated_cost != expected_cost {
1153+
println!("Failed processing block! block = {block_id}. Unexpected cost. expected = {expected_cost}, evaluated = {evaluated_cost}");
1154+
process::exit(1);
1155+
}
1156+
}
1157+
11401158
if let Some(e) = err_opt {
11411159
// force rollback
11421160
drop(chainstate_tx);

0 commit comments

Comments
 (0)