Summary
App shard consensus can produce duplicate frame numbers which are silently dropped.
Details
Simplex can enter view V+1 after V is notarized and certified but before V’s finalization has been applied to the shard clock store. Because the app proposer ignores the consensus parent and reads that store, V+1 can reuse V’s app frame number.
The worker persists the duplicate, skips materializing an already-seen number, then still republishes it and emits coverage at crates/quil-engine/src/app_engine.rs:2429. Archives silently ignore it at crates/quil-engine/src/archive_ingest.rs:135. A same-height clock-store entry may also be overwritten.
Repro
I added a repro in this commit: dazthecorgi@7a15239
Summary
App shard consensus can produce duplicate frame numbers which are silently dropped.
Details
Simplex can enter view V+1 after V is notarized and certified but before V’s finalization has been applied to the shard clock store. Because the app proposer ignores the consensus parent and reads that store, V+1 can reuse V’s app frame number.
The worker persists the duplicate, skips materializing an already-seen number, then still republishes it and emits coverage at
crates/quil-engine/src/app_engine.rs:2429. Archives silently ignore it atcrates/quil-engine/src/archive_ingest.rs:135. A same-height clock-store entry may also be overwritten.Repro
I added a repro in this commit: dazthecorgi@7a15239