FAILURE MAP

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 ↗
100840Executable case variants
20168Distinct failure mechanisms
302520Executed implementations
20168Open-access cases

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

Python · Standard library
REFERENCEFAILURE MECHANISMDOMAINACCESS
FA-90701

Block offset table: first object in the card returned even when it starts after the address · case 01

Addresses at the beginning of a card are attributed to the next object.

Garbage collector invariants● Open access↗
FA-90702

Block offset table: first object in the card returned even when it starts after the address · case 02

Addresses at the beginning of a card are attributed to the next object.

Garbage collector invariants◈ Members↗
FA-90703

Block offset table: first object in the card returned even when it starts after the address · case 03

Addresses at the beginning of a card are attributed to the next object.

Garbage collector invariants◈ Members↗
FA-90704

Block offset table: first object in the card returned even when it starts after the address · case 04

Addresses at the beginning of a card are attributed to the next object.

Garbage collector invariants◈ Members↗
FA-90705

Block offset table: first object in the card returned even when it starts after the address · case 05

Addresses at the beginning of a card are attributed to the next object.

Garbage collector invariants◈ Members↗
FA-90706

Block offset table: address at an object end attributed to that object · case 01

The first byte of an object is reported as belonging to its predecessor.

Garbage collector invariants● Open access↗
FA-90707

Block offset table: address at an object end attributed to that object · case 02

The first byte of an object is reported as belonging to its predecessor.

Garbage collector invariants◈ Members↗
FA-90708

Block offset table: address at an object end attributed to that object · case 03

The first byte of an object is reported as belonging to its predecessor.

Garbage collector invariants◈ Members↗
FA-90709

Block offset table: address at an object end attributed to that object · case 04

The first byte of an object is reported as belonging to its predecessor.

Garbage collector invariants◈ Members↗
FA-90710

Block offset table: address at an object end attributed to that object · case 05

The first byte of an object is reported as belonging to its predecessor.

Garbage collector invariants◈ Members↗
FA-90711

Identity hash: every move re-stores the hash · case 01

After a second move the hash changes and the object grows another 8 bytes.

Garbage collector invariants● Open access↗
FA-90712

Identity hash: every move re-stores the hash · case 02

After a second move the hash changes and the object grows another 8 bytes.

Garbage collector invariants◈ Members↗
FA-90713

Identity hash: every move re-stores the hash · case 03

After a second move the hash changes and the object grows another 8 bytes.

Garbage collector invariants◈ Members↗
FA-90714

Identity hash: every move re-stores the hash · case 04

After a second move the hash changes and the object grows another 8 bytes.

Garbage collector invariants◈ Members↗
FA-90715

Identity hash: every move re-stores the hash · case 05

After a second move the hash changes and the object grows another 8 bytes.

Garbage collector invariants◈ Members↗
FA-90716

Identity hash: stored hash computed from the destination address · case 01

The hash observed before a move differs from the one observed after it.

Garbage collector invariants● Open access↗
FA-90717

Identity hash: stored hash computed from the destination address · case 02

The hash observed before a move differs from the one observed after it.

Garbage collector invariants◈ Members↗
FA-90718

Identity hash: stored hash computed from the destination address · case 03

The hash observed before a move differs from the one observed after it.

Garbage collector invariants◈ Members↗
FA-90719

Identity hash: stored hash computed from the destination address · case 04

The hash observed before a move differs from the one observed after it.

Garbage collector invariants◈ Members↗
FA-90720

Identity hash: stored hash computed from the destination address · case 05

The hash observed before a move differs from the one observed after it.

Garbage collector invariants◈ Members↗
FA-90721

Identity hash: moved objects hash their current address · case 01

hashCode changes after every collection that moves the object.

Garbage collector invariants● Open access↗
FA-90722

Identity hash: moved objects hash their current address · case 02

hashCode changes after every collection that moves the object.

Garbage collector invariants◈ Members↗
FA-90723

Identity hash: moved objects hash their current address · case 03

hashCode changes after every collection that moves the object.

Garbage collector invariants◈ Members↗
FA-90724

Identity hash: moved objects hash their current address · case 04

hashCode changes after every collection that moves the object.

Garbage collector invariants◈ Members↗
FA-90725

Identity hash: moved objects hash their current address · case 05

hashCode changes after every collection that moves the object.

Garbage collector invariants◈ Members↗
FA-90726

Identity hash: mask applied before the shift · case 01

Hashes of unmoved objects disagree with the value later stored on move.

Garbage collector invariants● Open access↗
FA-90727

Identity hash: mask applied before the shift · case 02

Hashes of unmoved objects disagree with the value later stored on move.

Garbage collector invariants◈ Members↗
FA-90728

Identity hash: mask applied before the shift · case 03

Hashes of unmoved objects disagree with the value later stored on move.

Garbage collector invariants◈ Members↗
FA-90729

Identity hash: mask applied before the shift · case 04

Hashes of unmoved objects disagree with the value later stored on move.

Garbage collector invariants◈ Members↗
FA-90730

Identity hash: mask applied before the shift · case 05

Hashes of unmoved objects disagree with the value later stored on move.

Garbage collector invariants◈ Members↗
FA-90731

Remembered sets: intra-region pointers recorded · case 01

Remembered sets fill with pointers that never cross a region boundary.

Garbage collector invariants● Open access↗
FA-90732

Remembered sets: intra-region pointers recorded · case 02

Remembered sets fill with pointers that never cross a region boundary.

Garbage collector invariants◈ Members↗
FA-90733

Remembered sets: intra-region pointers recorded · case 03

Remembered sets fill with pointers that never cross a region boundary.

Garbage collector invariants◈ Members↗
FA-90734

Remembered sets: intra-region pointers recorded · case 04

Remembered sets fill with pointers that never cross a region boundary.

Garbage collector invariants◈ Members↗
FA-90735

Remembered sets: intra-region pointers recorded · case 05

Remembered sets fill with pointers that never cross a region boundary.

Garbage collector invariants◈ Members↗
FA-90736

Remembered sets: pointers into young regions dropped · case 01

Old-to-young references are missing and young evacuation loses live objects.

Garbage collector invariants● Open access↗
FA-90737

Remembered sets: pointers into young regions dropped · case 02

Old-to-young references are missing and young evacuation loses live objects.

Garbage collector invariants◈ Members↗
FA-90738

Remembered sets: pointers into young regions dropped · case 03

Old-to-young references are missing and young evacuation loses live objects.

Garbage collector invariants◈ Members↗
FA-90739

Remembered sets: pointers into young regions dropped · case 04

Old-to-young references are missing and young evacuation loses live objects.

Garbage collector invariants◈ Members↗
FA-90740

Remembered sets: pointers into young regions dropped · case 05

Old-to-young references are missing and young evacuation loses live objects.

Garbage collector invariants◈ Members↗
FA-90741

Remembered sets: target card recorded instead of the slot card · case 01

Evacuation rescans cards in the target region, which do not contain the referencing slot.

Garbage collector invariants● Open access↗
FA-90742

Remembered sets: target card recorded instead of the slot card · case 02

Evacuation rescans cards in the target region, which do not contain the referencing slot.

Garbage collector invariants◈ Members↗
FA-90743

Remembered sets: target card recorded instead of the slot card · case 03

Evacuation rescans cards in the target region, which do not contain the referencing slot.

Garbage collector invariants◈ Members↗
FA-90744

Remembered sets: target card recorded instead of the slot card · case 04

Evacuation rescans cards in the target region, which do not contain the referencing slot.

Garbage collector invariants◈ Members↗
FA-90745

Remembered sets: target card recorded instead of the slot card · case 05

Evacuation rescans cards in the target region, which do not contain the referencing slot.

Garbage collector invariants◈ Members↗
FA-90746

Remembered sets: continuation regions get their own sets · case 01

References into the tail of a humongous object are filed under a continuation region nobody scans.

Garbage collector invariants● Open access↗
FA-90747

Remembered sets: continuation regions get their own sets · case 02

References into the tail of a humongous object are filed under a continuation region nobody scans.

Garbage collector invariants◈ Members↗
FA-90748

Remembered sets: continuation regions get their own sets · case 03

References into the tail of a humongous object are filed under a continuation region nobody scans.

Garbage collector invariants◈ Members↗
FA-90749

Remembered sets: continuation regions get their own sets · case 04

References into the tail of a humongous object are filed under a continuation region nobody scans.

Garbage collector invariants◈ Members↗
FA-90750

Remembered sets: continuation regions get their own sets · case 05

References into the tail of a humongous object are filed under a continuation region nobody scans.

Garbage collector invariants◈ Members↗
FA-90751

TLAB: allocation ending exactly at the buffer end refused · case 01

The last slot of every TLAB is wasted and extra refills happen.

Garbage collector invariants● Open access↗
FA-90752

TLAB: allocation ending exactly at the buffer end refused · case 02

The last slot of every TLAB is wasted and extra refills happen.

Garbage collector invariants◈ Members↗
FA-90753

TLAB: allocation ending exactly at the buffer end refused · case 03

The last slot of every TLAB is wasted and extra refills happen.

Garbage collector invariants◈ Members↗
FA-90754

TLAB: allocation ending exactly at the buffer end refused · case 04

The last slot of every TLAB is wasted and extra refills happen.

Garbage collector invariants◈ Members↗
FA-90755

TLAB: allocation ending exactly at the buffer end refused · case 05

The last slot of every TLAB is wasted and extra refills happen.

Garbage collector invariants◈ Members↗
FA-90756

TLAB: nearly empty buffers kept and nearly full ones discarded · case 01

Buffers with plenty of free space are retired while almost-full ones force slow-path allocations.

Garbage collector invariants● Open access↗
FA-90757

TLAB: nearly empty buffers kept and nearly full ones discarded · case 02

Buffers with plenty of free space are retired while almost-full ones force slow-path allocations.

Garbage collector invariants◈ Members↗
FA-90758

TLAB: nearly empty buffers kept and nearly full ones discarded · case 03

Buffers with plenty of free space are retired while almost-full ones force slow-path allocations.

Garbage collector invariants◈ Members↗
FA-90759

TLAB: nearly empty buffers kept and nearly full ones discarded · case 04

Buffers with plenty of free space are retired while almost-full ones force slow-path allocations.

Garbage collector invariants◈ Members↗
FA-90760

TLAB: nearly empty buffers kept and nearly full ones discarded · case 05

Buffers with plenty of free space are retired while almost-full ones force slow-path allocations.

Garbage collector invariants◈ Members↗
FA-90761

TLAB: refill waste limit reset instead of raised · case 01

After a slow-path allocation the limit collapses, so a thread keeps retiring buffers too eagerly or never adapts.

Garbage collector invariants● Open access↗
FA-90762

TLAB: refill waste limit reset instead of raised · case 02

After a slow-path allocation the limit collapses, so a thread keeps retiring buffers too eagerly or never adapts.

Garbage collector invariants◈ Members↗
FA-90763

TLAB: refill waste limit reset instead of raised · case 03

After a slow-path allocation the limit collapses, so a thread keeps retiring buffers too eagerly or never adapts.

Garbage collector invariants◈ Members↗
FA-90764

TLAB: refill waste limit reset instead of raised · case 04

After a slow-path allocation the limit collapses, so a thread keeps retiring buffers too eagerly or never adapts.

Garbage collector invariants◈ Members↗
FA-90765

TLAB: refill waste limit reset instead of raised · case 05

After a slow-path allocation the limit collapses, so a thread keeps retiring buffers too eagerly or never adapts.

Garbage collector invariants◈ Members↗
FA-90766

TLAB: half-buffer objects allocated inside TLABs · case 01

Medium-sized objects retire TLABs early and waste most of each buffer.

Garbage collector invariants● Open access↗
FA-90767

TLAB: half-buffer objects allocated inside TLABs · case 02

Medium-sized objects retire TLABs early and waste most of each buffer.

Garbage collector invariants◈ Members↗
FA-90768

TLAB: half-buffer objects allocated inside TLABs · case 03

Medium-sized objects retire TLABs early and waste most of each buffer.

Garbage collector invariants◈ Members↗
FA-90769

TLAB: half-buffer objects allocated inside TLABs · case 04

Medium-sized objects retire TLABs early and waste most of each buffer.

Garbage collector invariants◈ Members↗
FA-90770

TLAB: half-buffer objects allocated inside TLABs · case 05

Medium-sized objects retire TLABs early and waste most of each buffer.

Garbage collector invariants◈ Members↗
FA-90771

TLAB: eden cannot be filled exactly · case 01

The final buffer or object that would end exactly at eden_end fails.

Garbage collector invariants● Open access↗
FA-90772

TLAB: eden cannot be filled exactly · case 02

The final buffer or object that would end exactly at eden_end fails.

Garbage collector invariants◈ Members↗
FA-90773

TLAB: eden cannot be filled exactly · case 03

The final buffer or object that would end exactly at eden_end fails.

Garbage collector invariants◈ Members↗
FA-90774

TLAB: eden cannot be filled exactly · case 04

The final buffer or object that would end exactly at eden_end fails.

Garbage collector invariants◈ Members↗
FA-90775

TLAB: eden cannot be filled exactly · case 05

The final buffer or object that would end exactly at eden_end fails.

Garbage collector invariants◈ Members↗
FA-90776

TAMS: object allocated exactly at TAMS judged by marks · case 01

The first object allocated after marking started is freed although it is implicitly live.

Garbage collector invariants● Open access↗
FA-90777

TAMS: object allocated exactly at TAMS judged by marks · case 02

The first object allocated after marking started is freed although it is implicitly live.

Garbage collector invariants◈ Members↗
FA-90778

TAMS: object allocated exactly at TAMS judged by marks · case 03

The first object allocated after marking started is freed although it is implicitly live.

Garbage collector invariants◈ Members↗
FA-90779

TAMS: object allocated exactly at TAMS judged by marks · case 04

The first object allocated after marking started is freed although it is implicitly live.

Garbage collector invariants◈ Members↗
FA-90780

TAMS: object allocated exactly at TAMS judged by marks · case 05

The first object allocated after marking started is freed although it is implicitly live.

Garbage collector invariants◈ Members↗
FA-90781

TAMS: untouched regions treated as full at mark start · case 01

Objects allocated during marking into a previously empty region are freed.

Garbage collector invariants● Open access↗
FA-90782

TAMS: untouched regions treated as full at mark start · case 02

Objects allocated during marking into a previously empty region are freed.

Garbage collector invariants◈ Members↗
FA-90783

TAMS: untouched regions treated as full at mark start · case 03

Objects allocated during marking into a previously empty region are freed.

Garbage collector invariants◈ Members↗
FA-90784

TAMS: untouched regions treated as full at mark start · case 04

Objects allocated during marking into a previously empty region are freed.

Garbage collector invariants◈ Members↗
FA-90785

TAMS: untouched regions treated as full at mark start · case 05

Objects allocated during marking into a previously empty region are freed.

Garbage collector invariants◈ Members↗
FA-90786

TAMS: watermark aliases the live allocation top · case 01

TAMS moves with allocation, so objects allocated during marking must be marked or are freed.

Garbage collector invariants● Open access↗
FA-90787

TAMS: watermark aliases the live allocation top · case 02

TAMS moves with allocation, so objects allocated during marking must be marked or are freed.

Garbage collector invariants◈ Members↗
FA-90788

TAMS: watermark aliases the live allocation top · case 03

TAMS moves with allocation, so objects allocated during marking must be marked or are freed.

Garbage collector invariants◈ Members↗
FA-90789

TAMS: watermark aliases the live allocation top · case 04

TAMS moves with allocation, so objects allocated during marking must be marked or are freed.

Garbage collector invariants◈ Members↗
FA-90790

TAMS: watermark aliases the live allocation top · case 05

TAMS moves with allocation, so objects allocated during marking must be marked or are freed.

Garbage collector invariants◈ Members↗
FA-90791

TAMS: marks carried over into the next cycle · case 01

Objects marked in an earlier cycle survive later cycles without being reached.

Garbage collector invariants● Open access↗
FA-90792

TAMS: marks carried over into the next cycle · case 02

Objects marked in an earlier cycle survive later cycles without being reached.

Garbage collector invariants◈ Members↗
FA-90793

TAMS: marks carried over into the next cycle · case 03

Objects marked in an earlier cycle survive later cycles without being reached.

Garbage collector invariants◈ Members↗
FA-90794

TAMS: marks carried over into the next cycle · case 04

Objects marked in an earlier cycle survive later cycles without being reached.

Garbage collector invariants◈ Members↗
FA-90795

TAMS: marks carried over into the next cycle · case 05

Objects marked in an earlier cycle survive later cycles without being reached.

Garbage collector invariants◈ Members↗
FA-90796

Oop maps: array length word traced as an element · case 01

The length of an object array is treated as a reference and the last element is skipped.

Garbage collector invariants● Open access↗
FA-90797

Oop maps: array length word traced as an element · case 02

The length of an object array is treated as a reference and the last element is skipped.

Garbage collector invariants◈ Members↗
FA-90798

Oop maps: array length word traced as an element · case 03

The length of an object array is treated as a reference and the last element is skipped.

Garbage collector invariants◈ Members↗
FA-90799

Oop maps: array length word traced as an element · case 04

The length of an object array is treated as a reference and the last element is skipped.

Garbage collector invariants◈ Members↗
FA-90800

Oop maps: array length word traced as an element · case 05

The length of an object array is treated as a reference and the last element is skipped.

Garbage collector invariants◈ Members↗

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 ↗