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
State vector diff: a partly known struct is resent whole · case 01
Peers receive clocks they already integrated.
State vector diff: a partly known struct is resent whole · case 02
Peers receive clocks they already integrated.
State vector diff: a partly known struct is resent whole · case 03
Peers receive clocks they already integrated.
State vector diff: a partly known struct is resent whole · case 04
Peers receive clocks they already integrated.
State vector diff: a partly known struct is resent whole · case 05
Peers receive clocks they already integrated.
State vector diff: clients unknown to the peer are never sent · case 01
A peer that has never heard from a client never receives its structs.
State vector diff: clients unknown to the peer are never sent · case 02
A peer that has never heard from a client never receives its structs.
State vector diff: clients unknown to the peer are never sent · case 03
A peer that has never heard from a client never receives its structs.
State vector diff: clients unknown to the peer are never sent · case 04
A peer that has never heard from a client never receives its structs.
State vector diff: clients unknown to the peer are never sent · case 05
A peer that has never heard from a client never receives its structs.
State vector diff: the local vector reports the last clock instead of the next one · case 01
The advertised state vector is one behind, so peers resend the last clock of every client.
State vector diff: the local vector reports the last clock instead of the next one · case 02
The advertised state vector is one behind, so peers resend the last clock of every client.
State vector diff: the local vector reports the last clock instead of the next one · case 03
The advertised state vector is one behind, so peers resend the last clock of every client.
State vector diff: the local vector reports the last clock instead of the next one · case 04
The advertised state vector is one behind, so peers resend the last clock of every client.
State vector diff: the local vector reports the last clock instead of the next one · case 05
The advertised state vector is one behind, so peers resend the last clock of every client.
State vector diff: integer client ids never match the decoded vector keys · case 01
Every sync resends the whole store.
State vector diff: integer client ids never match the decoded vector keys · case 02
Every sync resends the whole store.
State vector diff: integer client ids never match the decoded vector keys · case 03
Every sync resends the whole store.
State vector diff: integer client ids never match the decoded vector keys · case 04
Every sync resends the whole store.
State vector diff: integer client ids never match the decoded vector keys · case 05
Every sync resends the whole store.
Delete set normalization: touching ranges are not merged · case 01
Two ranges that meet end to start stay separate, so encodings differ between replicas.
Delete set normalization: touching ranges are not merged · case 02
Two ranges that meet end to start stay separate, so encodings differ between replicas.
Delete set normalization: touching ranges are not merged · case 03
Two ranges that meet end to start stay separate, so encodings differ between replicas.
Delete set normalization: touching ranges are not merged · case 04
Two ranges that meet end to start stay separate, so encodings differ between replicas.
Delete set normalization: touching ranges are not merged · case 05
Two ranges that meet end to start stay separate, so encodings differ between replicas.
Delete set normalization: a contained range shrinks the merged range · case 01
Deleted clocks at the end of a long range are forgotten.
Delete set normalization: a contained range shrinks the merged range · case 02
Deleted clocks at the end of a long range are forgotten.
Delete set normalization: a contained range shrinks the merged range · case 03
Deleted clocks at the end of a long range are forgotten.
Delete set normalization: a contained range shrinks the merged range · case 04
Deleted clocks at the end of a long range are forgotten.
Delete set normalization: a contained range shrinks the merged range · case 05
Deleted clocks at the end of a long range are forgotten.
Delete set normalization: ranges are merged in arrival order · case 01
Unsorted delete sets normalize to overlapping or out-of-order ranges.
Delete set normalization: ranges are merged in arrival order · case 02
Unsorted delete sets normalize to overlapping or out-of-order ranges.
Delete set normalization: ranges are merged in arrival order · case 03
Unsorted delete sets normalize to overlapping or out-of-order ranges.
Delete set normalization: ranges are merged in arrival order · case 04
Unsorted delete sets normalize to overlapping or out-of-order ranges.
Delete set normalization: ranges are merged in arrival order · case 05
Unsorted delete sets normalize to overlapping or out-of-order ranges.
Delete set normalization: the clock just past a range reads as deleted · case 01
The first live clock after a deleted range is reported as deleted.
Delete set normalization: the clock just past a range reads as deleted · case 02
The first live clock after a deleted range is reported as deleted.
Delete set normalization: the clock just past a range reads as deleted · case 03
The first live clock after a deleted range is reported as deleted.
Delete set normalization: the clock just past a range reads as deleted · case 04
The first live clock after a deleted range is reported as deleted.
Delete set normalization: the clock just past a range reads as deleted · case 05
The first live clock after a deleted range is reported as deleted.
LCS edit script: a match extends the wrong neighbouring cell · case 01
Diffs contain more insertions and deletions than necessary around repeated lines.
LCS edit script: a match extends the wrong neighbouring cell · case 02
Diffs contain more insertions and deletions than necessary around repeated lines.
LCS edit script: a match extends the wrong neighbouring cell · case 03
Diffs contain more insertions and deletions than necessary around repeated lines.
LCS edit script: a match extends the wrong neighbouring cell · case 04
Diffs contain more insertions and deletions than necessary around repeated lines.
LCS edit script: a match extends the wrong neighbouring cell · case 05
Diffs contain more insertions and deletions than necessary around repeated lines.
LCS edit script: ties emit the insertion before the deletion · case 01
A replaced line is shown as the new line followed by the removed one.
LCS edit script: ties emit the insertion before the deletion · case 02
A replaced line is shown as the new line followed by the removed one.
LCS edit script: ties emit the insertion before the deletion · case 03
A replaced line is shown as the new line followed by the removed one.
LCS edit script: ties emit the insertion before the deletion · case 04
A replaced line is shown as the new line followed by the removed one.
LCS edit script: ties emit the insertion before the deletion · case 05
A replaced line is shown as the new line followed by the removed one.
LCS edit script: the trailing deletion flush skips a line · case 01
The first of several trailing removed lines disappears from the diff.
LCS edit script: the trailing deletion flush skips a line · case 02
The first of several trailing removed lines disappears from the diff.
LCS edit script: the trailing deletion flush skips a line · case 03
The first of several trailing removed lines disappears from the diff.
LCS edit script: the trailing deletion flush skips a line · case 04
The first of several trailing removed lines disappears from the diff.
LCS edit script: the trailing deletion flush skips a line · case 05
The first of several trailing removed lines disappears from the diff.
LCS edit script: the first row and column of the table are never filled · case 01
Edits near the start of the files are chosen from zeros and the diff is not minimal.
LCS edit script: the first row and column of the table are never filled · case 02
Edits near the start of the files are chosen from zeros and the diff is not minimal.
LCS edit script: the first row and column of the table are never filled · case 03
Edits near the start of the files are chosen from zeros and the diff is not minimal.
LCS edit script: the first row and column of the table are never filled · case 04
Edits near the start of the files are chosen from zeros and the diff is not minimal.
LCS edit script: the first row and column of the table are never filled · case 05
Edits near the start of the files are chosen from zeros and the diff is not minimal.
Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 01
Reported distances are larger than the true minimum.
Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 02
Reported distances are larger than the true minimum.
Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 03
Reported distances are larger than the true minimum.
Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 04
Reported distances are larger than the true minimum.
Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 05
Reported distances are larger than the true minimum.
Myers greedy edit distance: only one equal element is followed on each diagonal · case 01
Runs of equal lines count as edits and the distance is overstated.
Myers greedy edit distance: only one equal element is followed on each diagonal · case 02
Runs of equal lines count as edits and the distance is overstated.
Myers greedy edit distance: only one equal element is followed on each diagonal · case 03
Runs of equal lines count as edits and the distance is overstated.
Myers greedy edit distance: only one equal element is followed on each diagonal · case 04
Runs of equal lines count as edits and the distance is overstated.
Myers greedy edit distance: only one equal element is followed on each diagonal · case 05
Runs of equal lines count as edits and the distance is overstated.
Myers greedy edit distance: the search stops when one sequence is exhausted · case 01
The distance omits the remaining insertions or deletions at the end.
Myers greedy edit distance: the search stops when one sequence is exhausted · case 02
The distance omits the remaining insertions or deletions at the end.
Myers greedy edit distance: the search stops when one sequence is exhausted · case 03
The distance omits the remaining insertions or deletions at the end.
Myers greedy edit distance: the search stops when one sequence is exhausted · case 04
The distance omits the remaining insertions or deletions at the end.
Myers greedy edit distance: the search stops when one sequence is exhausted · case 05
The distance omits the remaining insertions or deletions at the end.
Myers greedy edit distance: diagonals of the wrong parity are explored · case 01
Diagonals that cannot be reached with d edits are used and the reported distance is too small.
Myers greedy edit distance: diagonals of the wrong parity are explored · case 02
Diagonals that cannot be reached with d edits are used and the reported distance is too small.
Myers greedy edit distance: diagonals of the wrong parity are explored · case 03
Diagonals that cannot be reached with d edits are used and the reported distance is too small.
Myers greedy edit distance: diagonals of the wrong parity are explored · case 04
Diagonals that cannot be reached with d edits are used and the reported distance is too small.
Myers greedy edit distance: diagonals of the wrong parity are explored · case 05
Diagonals that cannot be reached with d edits are used and the reported distance is too small.
Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 01
Files whose distance equals max_d are treated as too different.
Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 02
Files whose distance equals max_d are treated as too different.
Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 03
Files whose distance equals max_d are treated as too different.
Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 04
Files whose distance equals max_d are treated as too different.
Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 05
Files whose distance equals max_d are treated as too different.
Unified hunk builder: hunks whose contexts touch are split · case 01
Two nearby changes produce two hunks that repeat the same context lines.
Unified hunk builder: hunks whose contexts touch are split · case 02
Two nearby changes produce two hunks that repeat the same context lines.
Unified hunk builder: hunks whose contexts touch are split · case 03
Two nearby changes produce two hunks that repeat the same context lines.
Unified hunk builder: hunks whose contexts touch are split · case 04
Two nearby changes produce two hunks that repeat the same context lines.
Unified hunk builder: hunks whose contexts touch are split · case 05
Two nearby changes produce two hunks that repeat the same context lines.
Unified hunk builder: empty ranges start at the next line · case 01
Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.
Unified hunk builder: empty ranges start at the next line · case 02
Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.
Unified hunk builder: empty ranges start at the next line · case 03
Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.
Unified hunk builder: empty ranges start at the next line · case 04
Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.
Unified hunk builder: empty ranges start at the next line · case 05
Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.
Unified hunk builder: single-line ranges print an explicit count · case 01
Headers read "-3,1" where the convention is "-3".
Unified hunk builder: single-line ranges print an explicit count · case 02
Headers read "-3,1" where the convention is "-3".
Unified hunk builder: single-line ranges print an explicit count · case 03
Headers read "-3,1" where the convention is "-3".
Unified hunk builder: single-line ranges print an explicit count · case 04
Headers read "-3,1" where the convention is "-3".
Unified hunk builder: single-line ranges print an explicit count · case 05
Headers read "-3,1" where the convention is "-3".
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 ↗