Repository navigation
test(ibd): serialise h-slow GetData latch reset with rotate-once tests - #26
Merged
Merged
Conversation
r219_h_slow_skips_dump_rotates_fat_once cleared process-wide LAST_H_SLOW_GD_MS without serial(ibd), so it could wipe the latch while r219_h_slow_dump_keeps_preferred_fat_rotates_once expected the same GetData sample not to rotate again.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Main went red after #24 on a storage-only delta. The only failure was
node::parallel_ibd::chunk_assigner::tests::r219_h_slow_dump_keeps_preferred_fat_rotates_once(
same GetData sample must not rotate again).Root cause
maybe_rotate_slow_h_stickydedupes on process-wideLAST_H_SLOW_GD_MSplustip_stage's last GetData body globals. The rotate-once tests already use#[serial_test::serial(ibd)], butr219_h_slow_skips_dump_rotates_fat_oncecalledtest_reset_h_slow_gd()without that attribute.serial_testonly serialises marked tests with each other, so the bare reset could clear the latch mid-flight of the rotate-once test and make the secondmaybe_rotate_slow_h_stickytreat the same sample as new.Fix
Add
#[serial_test::serial(ibd)]tor219_h_slow_skips_dump_rotates_fat_once. No production / consensus changes.Local check
cargo test -j 2 -p blvm-node --lib --features production r219_h_slow -- --test-threads=8r219_h_slowfilter: 50/50 passh_slow|dump_warehouse: 30/30 pass