FAILURE MAP
← Case archive

FA-90567 / Garbage collector invariants / Member archive

Ephemerons: dead tables reported for clearing · case 02

Clearing work is scheduled for tables that are themselves garbage.

Member previewVariant 2 · 3 implementations · 7 checks per implementation

Case contract

Ephemeron entries [table, key, value]: the value is traced only when both the table and the key are reachable; values may make further keys reachable, so iterate to a fixpoint. Keys and tables are never retained by an entry. Return the sorted live set and the [table, key] entries of live tables whose key died (to be cleared).

Why this case matters

WeakMap-style tables need fixpoint ephemeron marking or they leak or lose entries.

One recorded failure

Sample boundary fixture

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

Boundary fixtureActualExpectedOutcome
dead key in a dead table is not reported{"cleared": [["U2", "K2_2"]], "live": ["K1_2", "T2", "V1_2", "V7_2", "root"]}{"cleared": [], "live": ["K1_2", "T2", "V1_2", "V7_2", "root"]}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 ↗