FAILURE MAP
← Case archive

FA-282 / Runtime and resources / Member archive

A stale handle returns a newly checked-out object to the pool · case 02

The same slot becomes available while a later borrower still owns it.

Member previewVariant 2 · 3 implementations · 7 checks per implementation

Case contract

A pool starts with size free numbered slots. Get chooses the smallest free slot and increments its generation, or emits None if exhausted. Put [slot,generation] releases only that active handle. Return [issued handles,sorted free slots,sorted active handles]. Generations never wrap in this model.

Why this case matters

Models reusable object handles in a local allocator where delayed callbacks can outlive a checkout; this does not model distributed leases, wall-clock expiration, or thread interleaving.

One recorded failure

Sample boundary fixture

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

Boundary fixtureActualExpectedOutcome
old handle cannot release new checkout[[[0, 1], [0, 2], [0, 3], [0, 4]], [], [[0, 4]]][[[0, 1], [0, 2], [0, 3], null], [], [[0, 3]]]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 ↗