Skip to content

test(zebrad): restart_stop_at_height stalls on live peers and costs 10 minutes before its retry passes #11399

Description

@upbqdn

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions