The ci nextest profile gives integration::sync::restart_stop_at_height and integration::sync::sync_one_checkpoint_mainnet slow-timeout = { period = "5m", terminate-after = 2 } with retries = 2, so a stalled attempt burns 600s before nextest terminates it. Both are in serial-live-mainnet (max-threads = 1), so that dead time lands directly on the run’s critical path.
Observed on a 32-core host, same command as tests-unit.yml:
TRY 1 SLOW [>300.000s] zebrad::zebrad-tests integration::sync::restart_stop_at_height
TRY 1 TRMNTG [>600.000s] zebrad::zebrad-tests integration::sync::restart_stop_at_height
TRY 1 TMT [ 600.003s] zebrad::zebrad-tests integration::sync::restart_stop_at_height
TRY 2 PASS [ 9.260s] (1309/1320) zebrad::zebrad-tests integration::sync::restart_stop_at_height
Summary [1234.152s] 1320 tests run: 1320 passed (1 flaky), 16 skipped
The run took 1234s. A run of the same command where the test did not stall took 623s, and the test passed in 9.9-10.5s. So one stall doubles the unit-test job, and it is invisible in the result because the retry passes.
The test syncs a few checkpoints from live mainnet peers to check that a restart stops at the configured height, which does not need live peers. Either sync those blocks from a local fixture, or cut the per-attempt budget to something near the 10-30s the test normally takes, so a stall costs seconds rather than ten minutes.
The
cinextest profile givesintegration::sync::restart_stop_at_heightandintegration::sync::sync_one_checkpoint_mainnetslow-timeout = { period = "5m", terminate-after = 2 }withretries = 2, so a stalled attempt burns 600s before nextest terminates it. Both are inserial-live-mainnet(max-threads = 1), so that dead time lands directly on the run’s critical path.Observed on a 32-core host, same command as
tests-unit.yml:The run took 1234s. A run of the same command where the test did not stall took 623s, and the test passed in 9.9-10.5s. So one stall doubles the unit-test job, and it is invisible in the result because the retry passes.
The test syncs a few checkpoints from live mainnet peers to check that a restart stops at the configured height, which does not need live peers. Either sync those blocks from a local fixture, or cut the per-attempt budget to something near the 10-30s the test normally takes, so a stall costs seconds rather than ten minutes.