Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Heap pacing: percentage change based on current live bytes · case 01
Changing the percentage mid-cycle uses a live size the collector has not measured.
Heap pacing: percentage change based on current live bytes · case 02
Changing the percentage mid-cycle uses a live size the collector has not measured.
Heap pacing: percentage change based on current live bytes · case 03
Changing the percentage mid-cycle uses a live size the collector has not measured.
Heap pacing: percentage change based on current live bytes · case 04
Changing the percentage mid-cycle uses a live size the collector has not measured.
Heap pacing: percentage change based on current live bytes · case 05
Changing the percentage mid-cycle uses a live size the collector has not measured.
Heap pacing: heap reset to zero after collection · case 01
Live data is forgotten, so the next trigger happens far too late.
Heap pacing: heap reset to zero after collection · case 02
Live data is forgotten, so the next trigger happens far too late.
Heap pacing: heap reset to zero after collection · case 03
Live data is forgotten, so the next trigger happens far too late.
Heap pacing: heap reset to zero after collection · case 04
Live data is forgotten, so the next trigger happens far too late.
Heap pacing: heap reset to zero after collection · case 05
Live data is forgotten, so the next trigger happens far too late.
Card marking: card chosen from the object header · case 01
Slots that lie in the card after their object's header are recorded against the wrong card.
Card marking: card chosen from the object header · case 02
Slots that lie in the card after their object's header are recorded against the wrong card.
Card marking: card chosen from the object header · case 03
Slots that lie in the card after their object's header are recorded against the wrong card.
Card marking: card chosen from the object header · case 04
Slots that lie in the card after their object's header are recorded against the wrong card.
Card marking: card chosen from the object header · case 05
Slots that lie in the card after their object's header are recorded against the wrong card.
Card marking: barrier records young-to-young stores · case 01
Young objects reachable only from old objects are freed and later dereferenced.
Card marking: barrier records young-to-young stores · case 02
Young objects reachable only from old objects are freed and later dereferenced.
Card marking: barrier records young-to-young stores · case 03
Young objects reachable only from old objects are freed and later dereferenced.
Card marking: barrier records young-to-young stores · case 04
Young objects reachable only from old objects are freed and later dereferenced.
Card marking: barrier records young-to-young stores · case 05
Young objects reachable only from old objects are freed and later dereferenced.
Card marking: promotion one collection late · case 01
Objects stay young one minor collection longer than the tenuring threshold allows.
Card marking: promotion one collection late · case 02
Objects stay young one minor collection longer than the tenuring threshold allows.
Card marking: promotion one collection late · case 03
Objects stay young one minor collection longer than the tenuring threshold allows.
Card marking: promotion one collection late · case 04
Objects stay young one minor collection longer than the tenuring threshold allows.
Card marking: promotion one collection late · case 05
Objects stay young one minor collection longer than the tenuring threshold allows.
Card marking: cards rebuilt only for newly promoted objects · case 01
Old-to-young references recorded before a minor collection are forgotten afterwards.
Card marking: cards rebuilt only for newly promoted objects · case 02
Old-to-young references recorded before a minor collection are forgotten afterwards.
Card marking: cards rebuilt only for newly promoted objects · case 03
Old-to-young references recorded before a minor collection are forgotten afterwards.
Card marking: cards rebuilt only for newly promoted objects · case 04
Old-to-young references recorded before a minor collection are forgotten afterwards.
Card marking: cards rebuilt only for newly promoted objects · case 05
Old-to-young references recorded before a minor collection are forgotten afterwards.
Reference processing: weak references survive finalization resurrection · case 01
A weak reference still returns an object that is about to be finalized.
Reference processing: weak references survive finalization resurrection · case 02
A weak reference still returns an object that is about to be finalized.
Reference processing: weak references survive finalization resurrection · case 03
A weak reference still returns an object that is about to be finalized.
Reference processing: weak references survive finalization resurrection · case 04
A weak reference still returns an object that is about to be finalized.
Reference processing: weak references survive finalization resurrection · case 05
A weak reference still returns an object that is about to be finalized.
Reference processing: finalizers run every cycle · case 01
An unreachable object with a finalizer is resurrected forever and never freed.
Reference processing: finalizers run every cycle · case 02
An unreachable object with a finalizer is resurrected forever and never freed.
Reference processing: finalizers run every cycle · case 03
An unreachable object with a finalizer is resurrected forever and never freed.
Reference processing: finalizers run every cycle · case 04
An unreachable object with a finalizer is resurrected forever and never freed.
Reference processing: finalizers run every cycle · case 05
An unreachable object with a finalizer is resurrected forever and never freed.
Reference processing: finalizable object's children freed · case 01
A finalizer runs against an object whose fields point at freed memory.
Reference processing: finalizable object's children freed · case 02
A finalizer runs against an object whose fields point at freed memory.
Reference processing: finalizable object's children freed · case 03
A finalizer runs against an object whose fields point at freed memory.
Reference processing: finalizable object's children freed · case 04
A finalizer runs against an object whose fields point at freed memory.
Reference processing: finalizable object's children freed · case 05
A finalizer runs against an object whose fields point at freed memory.
Reference processing: phantoms enqueued while referent is still finalizer-reachable · case 01
Cleanup actions run for objects that a pending finalizer can still reach.
Reference processing: phantoms enqueued while referent is still finalizer-reachable · case 02
Cleanup actions run for objects that a pending finalizer can still reach.
Reference processing: phantoms enqueued while referent is still finalizer-reachable · case 03
Cleanup actions run for objects that a pending finalizer can still reach.
Reference processing: phantoms enqueued while referent is still finalizer-reachable · case 04
Cleanup actions run for objects that a pending finalizer can still reach.
Reference processing: phantoms enqueued while referent is still finalizer-reachable · case 05
Cleanup actions run for objects that a pending finalizer can still reach.
Ephemerons: single pass over the ephemeron list · case 01
Values whose keys become reachable only through later-listed ephemerons are dropped.
Ephemerons: single pass over the ephemeron list · case 02
Values whose keys become reachable only through later-listed ephemerons are dropped.
Ephemerons: single pass over the ephemeron list · case 03
Values whose keys become reachable only through later-listed ephemerons are dropped.
Ephemerons: single pass over the ephemeron list · case 04
Values whose keys become reachable only through later-listed ephemerons are dropped.
Ephemerons: single pass over the ephemeron list · case 05
Values whose keys become reachable only through later-listed ephemerons are dropped.
Ephemerons: values traced regardless of key liveness · case 01
Weak-keyed tables keep every value alive, leaking entries whose keys died.
Ephemerons: values traced regardless of key liveness · case 02
Weak-keyed tables keep every value alive, leaking entries whose keys died.
Ephemerons: values traced regardless of key liveness · case 03
Weak-keyed tables keep every value alive, leaking entries whose keys died.
Ephemerons: values traced regardless of key liveness · case 04
Weak-keyed tables keep every value alive, leaking entries whose keys died.
Ephemerons: values traced regardless of key liveness · case 05
Weak-keyed tables keep every value alive, leaking entries whose keys died.
Ephemerons: entries of dead tables keep values alive · case 01
A discarded WeakMap still retains values for keys that are alive elsewhere.
Ephemerons: entries of dead tables keep values alive · case 02
A discarded WeakMap still retains values for keys that are alive elsewhere.
Ephemerons: entries of dead tables keep values alive · case 03
A discarded WeakMap still retains values for keys that are alive elsewhere.
Ephemerons: entries of dead tables keep values alive · case 04
A discarded WeakMap still retains values for keys that are alive elsewhere.
Ephemerons: entries of dead tables keep values alive · case 05
A discarded WeakMap still retains values for keys that are alive elsewhere.
Ephemerons: dead tables reported for clearing · case 01
Clearing work is scheduled for tables that are themselves garbage.
Ephemerons: dead tables reported for clearing · case 02
Clearing work is scheduled for tables that are themselves garbage.
Ephemerons: dead tables reported for clearing · case 03
Clearing work is scheduled for tables that are themselves garbage.
Ephemerons: dead tables reported for clearing · case 04
Clearing work is scheduled for tables that are themselves garbage.
Ephemerons: dead tables reported for clearing · case 05
Clearing work is scheduled for tables that are themselves garbage.
Conservative scan: tag bits left on candidate addresses · case 01
Exact references never match an object start, so objects referenced from the stack are not pinned.
Conservative scan: tag bits left on candidate addresses · case 02
Exact references never match an object start, so objects referenced from the stack are not pinned.
Conservative scan: tag bits left on candidate addresses · case 03
Exact references never match an object start, so objects referenced from the stack are not pinned.
Conservative scan: tag bits left on candidate addresses · case 04
Exact references never match an object start, so objects referenced from the stack are not pinned.
Conservative scan: tag bits left on candidate addresses · case 05
Exact references never match an object start, so objects referenced from the stack are not pinned.
Conservative scan: one-past-the-end addresses pin the object · case 01
A pointer just beyond an object in a gap keeps that object pinned.
Conservative scan: one-past-the-end addresses pin the object · case 02
A pointer just beyond an object in a gap keeps that object pinned.
Conservative scan: one-past-the-end addresses pin the object · case 03
A pointer just beyond an object in a gap keeps that object pinned.
Conservative scan: one-past-the-end addresses pin the object · case 04
A pointer just beyond an object in a gap keeps that object pinned.
Conservative scan: one-past-the-end addresses pin the object · case 05
A pointer just beyond an object in a gap keeps that object pinned.
Conservative scan: interior pointers accepted when disabled · case 01
Configurations that only recognise object-start pointers pin objects through interior addresses.
Conservative scan: interior pointers accepted when disabled · case 02
Configurations that only recognise object-start pointers pin objects through interior addresses.
Conservative scan: interior pointers accepted when disabled · case 03
Configurations that only recognise object-start pointers pin objects through interior addresses.
Conservative scan: interior pointers accepted when disabled · case 04
Configurations that only recognise object-start pointers pin objects through interior addresses.
Conservative scan: interior pointers accepted when disabled · case 05
Configurations that only recognise object-start pointers pin objects through interior addresses.
Conservative scan: exact start pointers resolve to the previous object · case 01
References to an object's first word pin the neighbouring object or nothing.
Conservative scan: exact start pointers resolve to the previous object · case 02
References to an object's first word pin the neighbouring object or nothing.
Conservative scan: exact start pointers resolve to the previous object · case 03
References to an object's first word pin the neighbouring object or nothing.
Conservative scan: exact start pointers resolve to the previous object · case 04
References to an object's first word pin the neighbouring object or nothing.
Conservative scan: exact start pointers resolve to the previous object · case 05
References to an object's first word pin the neighbouring object or nothing.
Conservative scan: free blocks pinned · case 01
Stale stack words keep free-list blocks reserved.
Conservative scan: free blocks pinned · case 02
Stale stack words keep free-list blocks reserved.
Conservative scan: free blocks pinned · case 03
Stale stack words keep free-list blocks reserved.
Conservative scan: free blocks pinned · case 04
Stale stack words keep free-list blocks reserved.
Conservative scan: free blocks pinned · case 05
Stale stack words keep free-list blocks reserved.
Stack maps: reference bitmask read most-significant bit first · case 01
Integer slots are relocated as pointers while real reference slots keep stale addresses.
Stack maps: reference bitmask read most-significant bit first · case 02
Integer slots are relocated as pointers while real reference slots keep stale addresses.
Stack maps: reference bitmask read most-significant bit first · case 03
Integer slots are relocated as pointers while real reference slots keep stale addresses.
Stack maps: reference bitmask read most-significant bit first · case 04
Integer slots are relocated as pointers while real reference slots keep stale addresses.
Stack maps: reference bitmask read most-significant bit first · case 05
Integer slots are relocated as pointers while real reference slots keep stale addresses.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗