diff --git a/.config/e2e-nightly-selection.txt b/.config/e2e-nightly-selection.txt index c54d1cf59..f34c90f2b 100644 --- a/.config/e2e-nightly-selection.txt +++ b/.config/e2e-nightly-selection.txt @@ -1 +1 @@ -sha256=e58d2993aef56373d52ea40dfc6733fef42865195a71ccbd3883b0fafd84da75 +sha256=3da900ddcd7e2b9d3544bccfd69e468be5605a9fd2ea0ef5a6218304e42de5b4 diff --git a/crates/e2e_test/src/heal_erasure_disk_rebuild_test.rs b/crates/e2e_test/src/heal_erasure_disk_rebuild_test.rs index a6963f772..8201210ec 100644 --- a/crates/e2e_test/src/heal_erasure_disk_rebuild_test.rs +++ b/crates/e2e_test/src/heal_erasure_disk_rebuild_test.rs @@ -769,6 +769,16 @@ mod tests { run_cluster_root_heal_interruption(InterruptionScenario::IsolatedTargetRestart).await } + #[tokio::test(flavor = "multi_thread")] + async fn test_cluster_root_heal_recovers_remote_shards_after_background_target_restart() + -> Result<(), Box> { + timeout( + Duration::from_secs(420), + run_cluster_root_heal_interruption(InterruptionScenario::BackgroundTargetRestart), + ) + .await? + } + #[tokio::test(flavor = "multi_thread")] async fn test_cluster_root_heal_recovers_remote_shards_after_coordinator_restart() -> Result<(), Box> { @@ -792,6 +802,7 @@ mod tests { #[derive(Clone, Copy, PartialEq, Eq)] enum InterruptionScenario { IsolatedTargetRestart, + BackgroundTargetRestart, BackgroundCoordinatorRestart, TargetEndpointBlackhole, } @@ -799,6 +810,7 @@ mod tests { async fn run_cluster_root_heal_interruption(scenario: InterruptionScenario) -> Result<(), Box> { let (background_enabled, interruption_node, interruption_kind) = match scenario { InterruptionScenario::IsolatedTargetRestart => (false, 1, "target_restart"), + InterruptionScenario::BackgroundTargetRestart => (true, 1, "background_target_restart"), InterruptionScenario::BackgroundCoordinatorRestart => (true, 0, "coordinator_restart"), InterruptionScenario::TargetEndpointBlackhole => (false, 1, "target_endpoint_blackhole"), };