fix(test): seed shard allocations for the storage-attestation e2e - #617
Open
blacks1ne wants to merge 1 commit into
Open
Conversation
`TestProver::to_prover_info` builds a `ProverInfo` with an empty `allocations` vector. `prove_next_state`'s effective-Active proposing gate requires an allocation matching the shard filter whose `effective_status` at the frame's anchor is Active, so the `.any()` is vacuously false and every view nullifies with NoVote — the shard never produces a frame and the test times out after 90s. The gate is guarded by `anchor_gfn > 0`. Every other CW test leaves the global anchor at genesis and skips it; this is the only one that seeds a global frame (`StorageHarness::seeded(1000)`), which is what makes the gate live. The committee checks upstream of it still pass because `TestProverRegistry::get_active_provers` ignores the filter and the allocations entirely, so the fixture admits provers to a committee they hold no allocation on — a shape production cannot build. Seed each member an Active allocation on the shard filter, confirmed for the anchor's epoch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Base:
2b96656eworker_active_storage_attestationtimes out after 90s — the shard never produces a frame.TestProver::to_prover_infobuilds aProverInfowith an emptyallocationsvector.prove_next_state's effective-Active proposing gate askswhich is vacuously false on an empty vector, so every view nullifies with
NoVote.The gate is behind
if anchor_gfn > 0. Every other CW test leaves the global anchor at genesis and skips it; this is the only one that seeds a global frame (StorageHarness::seeded(1000)), which is what makes it live. The committee checks upstream of it still pass becauseTestProverRegistry::get_active_proversignores the filter and the allocations entirely — so the fixture admits provers to a committee they hold no allocation on, a shape production cannot build.The test and
to_prover_infoboth date from961297ec; the gate arrived later in324ffb3b. It stayed invisible because the E0063 break (#613) stopped the target compiling at all, and CI does not run on this branch (#616).Fix: seed each member an Active allocation on the shard filter, confirmed for the anchor's epoch.
On
epoch: its doc calls0a "genesis/grandfather sentinel", buteffective_statushas noepoch == 0case. Genesis appears not to need one — genesis provers are seeded with the empty filter, which returns Active before the epoch comparison is reached — so the comment reads as stale rather than as describing missing code. Not touched here.cargo nextest run -p quil-engine --test e2e_consensus→ 14/14 pass;worker_active_storage_attestation1.229s, previously a 90s timeout.Out of scope: the gate itself, and the CW/PoRep attestation follow-up noted in the test's own comment.