From a1552879e31c9107d4d5ab5761a92026798af2c2 Mon Sep 17 00:00:00 2001 From: gabriele-0201 Date: Wed, 12 Feb 2025 12:04:26 +0100 Subject: [PATCH 1/2] fix(torture): return error insteaf of panicking --- torture/src/supervisor/workload.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torture/src/supervisor/workload.rs b/torture/src/supervisor/workload.rs index 03d27557..ecc42899 100644 --- a/torture/src/supervisor/workload.rs +++ b/torture/src/supervisor/workload.rs @@ -880,7 +880,7 @@ impl Workload { assert!(matches!(outcome, OpenOutcome::Success)); } OpenOutcome::UnknownFailure(err) => { - panic!("unexpected open outcome: {:?}", err); + return Err(anyhow::anyhow!("unexpected open outcome: {:?}", err)); } } From d533eefc16f287dbac56b3bb8c870c0a10ce72be Mon Sep 17 00:00:00 2001 From: gabriele-0201 Date: Thu, 13 Feb 2025 12:50:46 +0100 Subject: [PATCH 2/2] fix: adjust `rollback_start_live` update When a rollback is going to erase all the commits, `rollback_start_live` will need to be equal to `pending_truncate`. --- nomt/src/rollback/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nomt/src/rollback/mod.rs b/nomt/src/rollback/mod.rs index e3840c02..f6c94716 100644 --- a/nomt/src/rollback/mod.rs +++ b/nomt/src/rollback/mod.rs @@ -237,8 +237,9 @@ impl Rollback { // NOTE: for now, if there is a pending truncate, we ignore everything else. if let Some(pending_truncate) = pending_truncate { + let rollback_start_live = std::cmp::min(seglog.live_range().0 .0, pending_truncate); return WriteoutData { - rollback_start_live: seglog.live_range().0 .0, + rollback_start_live, rollback_end_live: pending_truncate, prune_to_new_start_live: None, prune_to_new_end_live: Some(pending_truncate),