As part of investigating test flakiness in abc-parkedchain.py, I noticed a
severe lack of test coverage for nodes syncing many out-of-order blocks, both in and
out of IBD. This test provides that explicit coverage so that further development
on parking blocks does not cause nodes to periodically seize while syncing.
Details
- Reviewers
deadalnix Fabien - Group Reviewers
Restricted Project - Commits
- rSTAGINGe724cfe160dd: Added abc-sync-chain test to ensure node doesn't seize while syncing many blocks
rABCe724cfe160dd: Added abc-sync-chain test to ensure node doesn't seize while syncing many blocks
Run multiple times:
for i in {1..100}; do ./test_runner.py abc-sync-chain; done
Diff Detail
- Repository
- rABC Bitcoin ABC
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
test/functional/abc-sync-chain.py | ||
---|---|---|
12 ↗ | (On Diff #6334) | Not required |
15 ↗ | (On Diff #6334) | Could you whether remove the parenthesis or use it everywhere when there is no line break involved ? |
43 ↗ | (On Diff #6334) | I would advise you to use the new format() method, like this: |
44 ↗ | (On Diff #6334) | Shouldn't it be 200 + NUM_IBD_BLOCKS to have half the blocks during IBD and half the blocks outside of IBD ? |
51 ↗ | (On Diff #6334) | This can be simplified: |
81 ↗ | (On Diff #6334) | blocks[len(blocks) - 1] => blocks[-1] |
test/functional/abc-sync-chain.py | ||
---|---|---|
44 ↗ | (On Diff #6334) | I ran the test with NUM_IBD_BLOCKS set at 50 and got 404 chainwork at the end of the test. From this, I figured the chainwork per block was 2. |