FAILURE MAP
← Case archive

FA-90564 / Garbage collector invariants / Member archive

Ephemerons: entries of dead tables keep values alive · case 04

A discarded WeakMap still retains values for keys that are alive elsewhere.

Member previewVariant 4 · 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 table does not retain values{"cleared": [], "live": ["K1_4", "T4", "V5_4", "V7_4", "root"]}{"cleared": [], "live": ["K1_4", "T4", "V7_4", "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 ↗