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-90401

Trial deletion: only external roots keep gray objects alive · case 01

Objects kept alive by references from outside the candidate subgraph are collected.

Garbage collector invariants● Open access↗
FA-90402

Trial deletion: only external roots keep gray objects alive · case 02

Objects kept alive by references from outside the candidate subgraph are collected.

Garbage collector invariants◈ Members↗
FA-90403

Trial deletion: only external roots keep gray objects alive · case 03

Objects kept alive by references from outside the candidate subgraph are collected.

Garbage collector invariants◈ Members↗
FA-90404

Trial deletion: only external roots keep gray objects alive · case 04

Objects kept alive by references from outside the candidate subgraph are collected.

Garbage collector invariants◈ Members↗
FA-90405

Trial deletion: only external roots keep gray objects alive · case 05

Objects kept alive by references from outside the candidate subgraph are collected.

Garbage collector invariants◈ Members↗
FA-90406

Trial deletion: children whitened without being scanned · case 01

Cycle members beyond the first child stay gray and survive, while children with outside references are whitened.

Garbage collector invariants● Open access↗
FA-90407

Trial deletion: children whitened without being scanned · case 02

Cycle members beyond the first child stay gray and survive, while children with outside references are whitened.

Garbage collector invariants◈ Members↗
FA-90408

Trial deletion: children whitened without being scanned · case 03

Cycle members beyond the first child stay gray and survive, while children with outside references are whitened.

Garbage collector invariants◈ Members↗
FA-90409

Trial deletion: children whitened without being scanned · case 04

Cycle members beyond the first child stay gray and survive, while children with outside references are whitened.

Garbage collector invariants◈ Members↗
FA-90410

Trial deletion: children whitened without being scanned · case 05

Cycle members beyond the first child stay gray and survive, while children with outside references are whitened.

Garbage collector invariants◈ Members↗
FA-90411

Trial deletion: external references ignored · case 01

Every candidate subgraph is collected, including ones held by the mutator.

Garbage collector invariants● Open access↗
FA-90412

Trial deletion: external references ignored · case 02

Every candidate subgraph is collected, including ones held by the mutator.

Garbage collector invariants◈ Members↗
FA-90413

Trial deletion: external references ignored · case 03

Every candidate subgraph is collected, including ones held by the mutator.

Garbage collector invariants◈ Members↗
FA-90414

Trial deletion: external references ignored · case 04

Every candidate subgraph is collected, including ones held by the mutator.

Garbage collector invariants◈ Members↗
FA-90415

Trial deletion: external references ignored · case 05

Every candidate subgraph is collected, including ones held by the mutator.

Garbage collector invariants◈ Members↗
FA-90416

Cheney copy: objects copied again on every reference · case 01

Shared objects are duplicated and cycles copy until to-space is exhausted.

Garbage collector invariants● Open access↗
FA-90417

Cheney copy: objects copied again on every reference · case 02

Shared objects are duplicated and cycles copy until to-space is exhausted.

Garbage collector invariants◈ Members↗
FA-90418

Cheney copy: objects copied again on every reference · case 03

Shared objects are duplicated and cycles copy until to-space is exhausted.

Garbage collector invariants◈ Members↗
FA-90419

Cheney copy: objects copied again on every reference · case 04

Shared objects are duplicated and cycles copy until to-space is exhausted.

Garbage collector invariants◈ Members↗
FA-90420

Cheney copy: objects copied again on every reference · case 05

Shared objects are duplicated and cycles copy until to-space is exhausted.

Garbage collector invariants◈ Members↗
FA-90421

Cheney copy: copies bump-allocated at their raw size · case 01

Objects with sizes that are not multiples of 8 leave later copies misaligned.

Garbage collector invariants● Open access↗
FA-90422

Cheney copy: copies bump-allocated at their raw size · case 02

Objects with sizes that are not multiples of 8 leave later copies misaligned.

Garbage collector invariants◈ Members↗
FA-90423

Cheney copy: copies bump-allocated at their raw size · case 03

Objects with sizes that are not multiples of 8 leave later copies misaligned.

Garbage collector invariants◈ Members↗
FA-90424

Cheney copy: copies bump-allocated at their raw size · case 04

Objects with sizes that are not multiples of 8 leave later copies misaligned.

Garbage collector invariants◈ Members↗
FA-90425

Cheney copy: copies bump-allocated at their raw size · case 05

Objects with sizes that are not multiples of 8 leave later copies misaligned.

Garbage collector invariants◈ Members↗
FA-90426

Cheney copy: exactly filling to-space reported as overflow · case 01

A heap whose survivors fit to-space exactly fails with out-of-memory.

Garbage collector invariants● Open access↗
FA-90427

Cheney copy: exactly filling to-space reported as overflow · case 02

A heap whose survivors fit to-space exactly fails with out-of-memory.

Garbage collector invariants◈ Members↗
FA-90428

Cheney copy: exactly filling to-space reported as overflow · case 03

A heap whose survivors fit to-space exactly fails with out-of-memory.

Garbage collector invariants◈ Members↗
FA-90429

Cheney copy: exactly filling to-space reported as overflow · case 04

A heap whose survivors fit to-space exactly fails with out-of-memory.

Garbage collector invariants◈ Members↗
FA-90430

Cheney copy: exactly filling to-space reported as overflow · case 05

A heap whose survivors fit to-space exactly fails with out-of-memory.

Garbage collector invariants◈ Members↗
FA-90431

Cheney copy: scanning stops before the last copied object · case 01

Fields of the most recently copied object keep pointing into from-space.

Garbage collector invariants● Open access↗
FA-90432

Cheney copy: scanning stops before the last copied object · case 02

Fields of the most recently copied object keep pointing into from-space.

Garbage collector invariants◈ Members↗
FA-90433

Cheney copy: scanning stops before the last copied object · case 03

Fields of the most recently copied object keep pointing into from-space.

Garbage collector invariants◈ Members↗
FA-90434

Cheney copy: scanning stops before the last copied object · case 04

Fields of the most recently copied object keep pointing into from-space.

Garbage collector invariants◈ Members↗
FA-90435

Cheney copy: scanning stops before the last copied object · case 05

Fields of the most recently copied object keep pointing into from-space.

Garbage collector invariants◈ Members↗
FA-90436

Sliding compaction: dead objects still advance the compaction pointer · case 01

Live objects keep the gaps left by dead objects and the heap never shrinks.

Garbage collector invariants● Open access↗
FA-90437

Sliding compaction: dead objects still advance the compaction pointer · case 02

Live objects keep the gaps left by dead objects and the heap never shrinks.

Garbage collector invariants◈ Members↗
FA-90438

Sliding compaction: dead objects still advance the compaction pointer · case 03

Live objects keep the gaps left by dead objects and the heap never shrinks.

Garbage collector invariants◈ Members↗
FA-90439

Sliding compaction: dead objects still advance the compaction pointer · case 04

Live objects keep the gaps left by dead objects and the heap never shrinks.

Garbage collector invariants◈ Members↗
FA-90440

Sliding compaction: dead objects still advance the compaction pointer · case 05

Live objects keep the gaps left by dead objects and the heap never shrinks.

Garbage collector invariants◈ Members↗
FA-90441

Sliding compaction: new addresses assigned in input order · case 01

Objects are permuted instead of slid, so live objects can overtake each other.

Garbage collector invariants● Open access↗
FA-90442

Sliding compaction: new addresses assigned in input order · case 02

Objects are permuted instead of slid, so live objects can overtake each other.

Garbage collector invariants◈ Members↗
FA-90443

Sliding compaction: new addresses assigned in input order · case 03

Objects are permuted instead of slid, so live objects can overtake each other.

Garbage collector invariants◈ Members↗
FA-90444

Sliding compaction: new addresses assigned in input order · case 04

Objects are permuted instead of slid, so live objects can overtake each other.

Garbage collector invariants◈ Members↗
FA-90445

Sliding compaction: new addresses assigned in input order · case 05

Objects are permuted instead of slid, so live objects can overtake each other.

Garbage collector invariants◈ Members↗
FA-90446

Sliding compaction: interior pointers snapped to object starts · case 01

Pointers into the middle of objects are redirected to the object headers.

Garbage collector invariants● Open access↗
FA-90447

Sliding compaction: interior pointers snapped to object starts · case 02

Pointers into the middle of objects are redirected to the object headers.

Garbage collector invariants◈ Members↗
FA-90448

Sliding compaction: interior pointers snapped to object starts · case 03

Pointers into the middle of objects are redirected to the object headers.

Garbage collector invariants◈ Members↗
FA-90449

Sliding compaction: interior pointers snapped to object starts · case 04

Pointers into the middle of objects are redirected to the object headers.

Garbage collector invariants◈ Members↗
FA-90450

Sliding compaction: interior pointers snapped to object starts · case 05

Pointers into the middle of objects are redirected to the object headers.

Garbage collector invariants◈ Members↗
FA-90451

Sliding compaction: pointers to object starts resolve to the previous object · case 01

References to an object's first byte are reported as dangling or attributed to its neighbour.

Garbage collector invariants● Open access↗
FA-90452

Sliding compaction: pointers to object starts resolve to the previous object · case 02

References to an object's first byte are reported as dangling or attributed to its neighbour.

Garbage collector invariants◈ Members↗
FA-90453

Sliding compaction: pointers to object starts resolve to the previous object · case 03

References to an object's first byte are reported as dangling or attributed to its neighbour.

Garbage collector invariants◈ Members↗
FA-90454

Sliding compaction: pointers to object starts resolve to the previous object · case 04

References to an object's first byte are reported as dangling or attributed to its neighbour.

Garbage collector invariants◈ Members↗
FA-90455

Sliding compaction: pointers to object starts resolve to the previous object · case 05

References to an object's first byte are reported as dangling or attributed to its neighbour.

Garbage collector invariants◈ Members↗
FA-90456

Free-list sweep: free blocks merged across live blocks · case 01

Coalesced free blocks swallow live objects that sit between them.

Garbage collector invariants● Open access↗
FA-90457

Free-list sweep: free blocks merged across live blocks · case 02

Coalesced free blocks swallow live objects that sit between them.

Garbage collector invariants◈ Members↗
FA-90458

Free-list sweep: free blocks merged across live blocks · case 03

Coalesced free blocks swallow live objects that sit between them.

Garbage collector invariants◈ Members↗
FA-90459

Free-list sweep: free blocks merged across live blocks · case 04

Coalesced free blocks swallow live objects that sit between them.

Garbage collector invariants◈ Members↗
FA-90460

Free-list sweep: free blocks merged across live blocks · case 05

Coalesced free blocks swallow live objects that sit between them.

Garbage collector invariants◈ Members↗
FA-90461

Free-list sweep: slivers below the minimum block size created · case 01

Allocations leave 8-byte free fragments that can never hold a block header.

Garbage collector invariants● Open access↗
FA-90462

Free-list sweep: slivers below the minimum block size created · case 02

Allocations leave 8-byte free fragments that can never hold a block header.

Garbage collector invariants◈ Members↗
FA-90463

Free-list sweep: slivers below the minimum block size created · case 03

Allocations leave 8-byte free fragments that can never hold a block header.

Garbage collector invariants◈ Members↗
FA-90464

Free-list sweep: slivers below the minimum block size created · case 04

Allocations leave 8-byte free fragments that can never hold a block header.

Garbage collector invariants◈ Members↗
FA-90465

Free-list sweep: slivers below the minimum block size created · case 05

Allocations leave 8-byte free fragments that can never hold a block header.

Garbage collector invariants◈ Members↗
FA-90466

Free-list sweep: split block keeps the allocated address · case 01

The next allocation is handed the same address again.

Garbage collector invariants● Open access↗
FA-90467

Free-list sweep: split block keeps the allocated address · case 02

The next allocation is handed the same address again.

Garbage collector invariants◈ Members↗
FA-90468

Free-list sweep: split block keeps the allocated address · case 03

The next allocation is handed the same address again.

Garbage collector invariants◈ Members↗
FA-90469

Free-list sweep: split block keeps the allocated address · case 04

The next allocation is handed the same address again.

Garbage collector invariants◈ Members↗
FA-90470

Free-list sweep: split block keeps the allocated address · case 05

The next allocation is handed the same address again.

Garbage collector invariants◈ Members↗
FA-90471

Free-list sweep: sweep report aliases the live free list · case 01

The reported post-sweep free list changes as allocations consume blocks.

Garbage collector invariants● Open access↗
FA-90472

Free-list sweep: sweep report aliases the live free list · case 02

The reported post-sweep free list changes as allocations consume blocks.

Garbage collector invariants◈ Members↗
FA-90473

Free-list sweep: sweep report aliases the live free list · case 03

The reported post-sweep free list changes as allocations consume blocks.

Garbage collector invariants◈ Members↗
FA-90474

Free-list sweep: sweep report aliases the live free list · case 04

The reported post-sweep free list changes as allocations consume blocks.

Garbage collector invariants◈ Members↗
FA-90475

Free-list sweep: sweep report aliases the live free list · case 05

The reported post-sweep free list changes as allocations consume blocks.

Garbage collector invariants◈ Members↗
FA-90476

Free-list sweep: exact fits skipped · case 01

A request that exactly matches a free block is served from a later, larger block.

Garbage collector invariants● Open access↗
FA-90477

Free-list sweep: exact fits skipped · case 02

A request that exactly matches a free block is served from a later, larger block.

Garbage collector invariants◈ Members↗
FA-90478

Free-list sweep: exact fits skipped · case 03

A request that exactly matches a free block is served from a later, larger block.

Garbage collector invariants◈ Members↗
FA-90479

Free-list sweep: exact fits skipped · case 04

A request that exactly matches a free block is served from a later, larger block.

Garbage collector invariants◈ Members↗
FA-90480

Free-list sweep: exact fits skipped · case 05

A request that exactly matches a free block is served from a later, larger block.

Garbage collector invariants◈ Members↗
FA-90481

Heap pacing: reaching the goal exactly does not trigger · case 01

Collections start one allocation late whenever the heap lands exactly on its goal.

Garbage collector invariants● Open access↗
FA-90482

Heap pacing: reaching the goal exactly does not trigger · case 02

Collections start one allocation late whenever the heap lands exactly on its goal.

Garbage collector invariants◈ Members↗
FA-90483

Heap pacing: reaching the goal exactly does not trigger · case 03

Collections start one allocation late whenever the heap lands exactly on its goal.

Garbage collector invariants◈ Members↗
FA-90484

Heap pacing: reaching the goal exactly does not trigger · case 04

Collections start one allocation late whenever the heap lands exactly on its goal.

Garbage collector invariants◈ Members↗
FA-90485

Heap pacing: reaching the goal exactly does not trigger · case 05

Collections start one allocation late whenever the heap lands exactly on its goal.

Garbage collector invariants◈ Members↗
FA-90486

Heap pacing: goal counts only the growth allowance · case 01

With GOGC=100 the next goal equals the live heap, so collections run back to back.

Garbage collector invariants● Open access↗
FA-90487

Heap pacing: goal counts only the growth allowance · case 02

With GOGC=100 the next goal equals the live heap, so collections run back to back.

Garbage collector invariants◈ Members↗
FA-90488

Heap pacing: goal counts only the growth allowance · case 03

With GOGC=100 the next goal equals the live heap, so collections run back to back.

Garbage collector invariants◈ Members↗
FA-90489

Heap pacing: goal counts only the growth allowance · case 04

With GOGC=100 the next goal equals the live heap, so collections run back to back.

Garbage collector invariants◈ Members↗
FA-90490

Heap pacing: goal counts only the growth allowance · case 05

With GOGC=100 the next goal equals the live heap, so collections run back to back.

Garbage collector invariants◈ Members↗
FA-90491

Heap pacing: tiny live heaps get tiny goals · case 01

After a collection that leaves little live data, the next collections run after a few bytes.

Garbage collector invariants● Open access↗
FA-90492

Heap pacing: tiny live heaps get tiny goals · case 02

After a collection that leaves little live data, the next collections run after a few bytes.

Garbage collector invariants◈ Members↗
FA-90493

Heap pacing: tiny live heaps get tiny goals · case 03

After a collection that leaves little live data, the next collections run after a few bytes.

Garbage collector invariants◈ Members↗
FA-90494

Heap pacing: tiny live heaps get tiny goals · case 04

After a collection that leaves little live data, the next collections run after a few bytes.

Garbage collector invariants◈ Members↗
FA-90495

Heap pacing: tiny live heaps get tiny goals · case 05

After a collection that leaves little live data, the next collections run after a few bytes.

Garbage collector invariants◈ Members↗
FA-90496

Heap pacing: zero percent treated as disabled · case 01

Setting the percentage to 0 stops collections instead of collecting at every goal crossing.

Garbage collector invariants● Open access↗
FA-90497

Heap pacing: zero percent treated as disabled · case 02

Setting the percentage to 0 stops collections instead of collecting at every goal crossing.

Garbage collector invariants◈ Members↗
FA-90498

Heap pacing: zero percent treated as disabled · case 03

Setting the percentage to 0 stops collections instead of collecting at every goal crossing.

Garbage collector invariants◈ Members↗
FA-90499

Heap pacing: zero percent treated as disabled · case 04

Setting the percentage to 0 stops collections instead of collecting at every goal crossing.

Garbage collector invariants◈ Members↗
FA-90500

Heap pacing: zero percent treated as disabled · case 05

Setting the percentage to 0 stops collections instead of collecting at every goal crossing.

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 ↗