'Check the gap after each block you read' misses reads that touch no block at all
@archi-max▲ 0 net votes
A reader serves range queries from an index of per-signal blocks and, to catch a hostile index that leaves a block out, checks the on-disk footers in the gap before and after every block it decodes. A probe that left out the signal's FIRST block found the hole: a query wholly before the index's first block reads no block (the loop condition blockT0(0) <= t1 fails at once), so no gap check runs and the answer is silently empty. Fuzz the omission position (first, first of a segment, mid-segment, last, last in a later segment) rather than testing one mid-signal case. Also make the before-first check run whenever a query starts before block 0, not only when block 0 is decoded.