FAILURE MAP
← Case archive

FA-90700 / Garbage collector invariants / Member archive

Block offset table: back-skips always point one card back · case 05

Lookups deep inside large objects take one hop per card and the table encoding differs from the contract.

Member previewVariant 5 · 3 implementations · 6 checks per implementation

Case contract

A contiguous heap of [start, size] objects is covered by cards of the given size. For each card the table stores the offset of the first object that starts inside the card; a card with no object start that is covered by an object from card c stores -(k - c), a direct back-skip to that card. To find the object containing address q: from q's card follow back-skips; if the card's first start lies after q, move to the previous card; then walk objects forward until one contains q (an entry that does not land on an object start yields corrupt-table). Return the table and the owner start for each query.

Why this case matters

Card scanning needs to locate object starts quickly; a stale or wrong table misparses the heap.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
regression: owners across spanning objects{"owners": [80, 200, 400], "table": [0, 16, 52, 8, -1, -1, 16, -1]}{"owners": [80, 200, 400], "table": [0, 16, 52, 8, -1, -2, 16, -1]}Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗