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 ↗A RECORD OF WHAT WENT WRONG
Browse the archive / 97840
BOM cleanup removes a legitimate character inside the document · case 01
A leading encoding signature is exposed as text, or cleanup also strips matching interior characters.
BOM cleanup removes a legitimate character inside the document · case 02
A leading encoding signature is exposed as text, or cleanup also strips matching interior characters.
BOM cleanup removes a legitimate character inside the document · case 03
A leading encoding signature is exposed as text, or cleanup also strips matching interior characters.
BOM cleanup removes a legitimate character inside the document · case 04
A leading encoding signature is exposed as text, or cleanup also strips matching interior characters.
BOM cleanup removes a legitimate character inside the document · case 05
A leading encoding signature is exposed as text, or cleanup also strips matching interior characters.
Removing carriage returns joins separate records · case 01
CRLF input leaves stray carriage returns, while a cleanup step merges records separated by CR alone.
Removing carriage returns joins separate records · case 02
CRLF input leaves stray carriage returns, while a cleanup step merges records separated by CR alone.
Removing carriage returns joins separate records · case 03
CRLF input leaves stray carriage returns, while a cleanup step merges records separated by CR alone.
Removing carriage returns joins separate records · case 04
CRLF input leaves stray carriage returns, while a cleanup step merges records separated by CR alone.
Removing carriage returns joins separate records · case 05
CRLF input leaves stray carriage returns, while a cleanup step merges records separated by CR alone.
A second percent-decoding pass changes path data into syntax · case 01
A literal plus becomes a space, or a double-encoded slash unexpectedly becomes a path separator.
A second percent-decoding pass changes path data into syntax · case 02
A literal plus becomes a space, or a double-encoded slash unexpectedly becomes a path separator.
A second percent-decoding pass changes path data into syntax · case 03
A literal plus becomes a space, or a double-encoded slash unexpectedly becomes a path separator.
A second percent-decoding pass changes path data into syntax · case 04
A literal plus becomes a space, or a double-encoded slash unexpectedly becomes a path separator.
A second percent-decoding pass changes path data into syntax · case 05
A literal plus becomes a space, or a double-encoded slash unexpectedly becomes a path separator.
A separator inside nested brackets splits the outer list · case 01
A comma inside a nested expression becomes a top-level boundary, or mismatched brackets pass unchecked.
A separator inside nested brackets splits the outer list · case 02
A comma inside a nested expression becomes a top-level boundary, or mismatched brackets pass unchecked.
A separator inside nested brackets splits the outer list · case 03
A comma inside a nested expression becomes a top-level boundary, or mismatched brackets pass unchecked.
A separator inside nested brackets splits the outer list · case 04
A comma inside a nested expression becomes a top-level boundary, or mismatched brackets pass unchecked.
A separator inside nested brackets splits the outer list · case 05
A comma inside a nested expression becomes a top-level boundary, or mismatched brackets pass unchecked.
Sorting only the root leaves unstable nested JSON output · case 01
Equivalent nested objects produce different byte strings depending on insertion order.
Sorting only the root leaves unstable nested JSON output · case 02
Equivalent nested objects produce different byte strings depending on insertion order.
Sorting only the root leaves unstable nested JSON output · case 03
Equivalent nested objects produce different byte strings depending on insertion order.
Sorting only the root leaves unstable nested JSON output · case 04
Equivalent nested objects produce different byte strings depending on insertion order.
Sorting only the root leaves unstable nested JSON output · case 05
Equivalent nested objects produce different byte strings depending on insertion order.
A varint decoder accepts an ambiguous or overflowing frame · case 01
Trailing bytes, overlong encodings, and values larger than the specified integer width are accepted.
A varint decoder accepts an ambiguous or overflowing frame · case 02
Trailing bytes, overlong encodings, and values larger than the specified integer width are accepted.
A varint decoder accepts an ambiguous or overflowing frame · case 03
Trailing bytes, overlong encodings, and values larger than the specified integer width are accepted.
A varint decoder accepts an ambiguous or overflowing frame · case 04
Trailing bytes, overlong encodings, and values larger than the specified integer width are accepted.
A varint decoder accepts an ambiguous or overflowing frame · case 05
Trailing bytes, overlong encodings, and values larger than the specified integer width are accepted.
A bounded queue admits only part of a logical batch · case 01
A queue exceeds capacity or silently drops a suffix after accepting a batch.
A bounded queue admits only part of a logical batch · case 02
A queue exceeds capacity or silently drops a suffix after accepting a batch.
A bounded queue admits only part of a logical batch · case 03
A queue exceeds capacity or silently drops a suffix after accepting a batch.
A bounded queue admits only part of a logical batch · case 04
A queue exceeds capacity or silently drops a suffix after accepting a batch.
A bounded queue admits only part of a logical batch · case 05
A queue exceeds capacity or silently drops a suffix after accepting a batch.
Frequent checks destroy a token bucket's fractional credit · case 01
The limiter admits too few or too many operations when fractional refills occur between requests.
Frequent checks destroy a token bucket's fractional credit · case 02
The limiter admits too few or too many operations when fractional refills occur between requests.
Frequent checks destroy a token bucket's fractional credit · case 03
The limiter admits too few or too many operations when fractional refills occur between requests.
Frequent checks destroy a token bucket's fractional credit · case 04
The limiter admits too few or too many operations when fractional refills occur between requests.
Frequent checks destroy a token bucket's fractional credit · case 05
The limiter admits too few or too many operations when fractional refills occur between requests.
A weighted scheduler releases traffic in unfair bursts · case 01
Round-robin ignores weights, while contiguous weighted blocks create avoidable short-prefix imbalance.
A weighted scheduler releases traffic in unfair bursts · case 02
Round-robin ignores weights, while contiguous weighted blocks create avoidable short-prefix imbalance.
A weighted scheduler releases traffic in unfair bursts · case 03
Round-robin ignores weights, while contiguous weighted blocks create avoidable short-prefix imbalance.
A weighted scheduler releases traffic in unfair bursts · case 04
Round-robin ignores weights, while contiguous weighted blocks create avoidable short-prefix imbalance.
A weighted scheduler releases traffic in unfair bursts · case 05
Round-robin ignores weights, while contiguous weighted blocks create avoidable short-prefix imbalance.
An arena aligns block size instead of its starting address · case 01
An allocation starts at a misaligned cursor even though its padded size is a multiple of alignment.
An arena aligns block size instead of its starting address · case 02
An allocation starts at a misaligned cursor even though its padded size is a multiple of alignment.
An arena aligns block size instead of its starting address · case 03
An allocation starts at a misaligned cursor even though its padded size is a multiple of alignment.
An arena aligns block size instead of its starting address · case 04
An allocation starts at a misaligned cursor even though its padded size is a multiple of alignment.
An arena aligns block size instead of its starting address · case 05
An allocation starts at a misaligned cursor even though its padded size is a multiple of alignment.
Dropping a borrowed alias destroys a still-owned object · case 01
A borrowed pointer either keeps an object alive or decrements an ownership count it never incremented.
Dropping a borrowed alias destroys a still-owned object · case 02
A borrowed pointer either keeps an object alive or decrements an ownership count it never incremented.
Dropping a borrowed alias destroys a still-owned object · case 03
A borrowed pointer either keeps an object alive or decrements an ownership count it never incremented.
Dropping a borrowed alias destroys a still-owned object · case 04
A borrowed pointer either keeps an object alive or decrements an ownership count it never incremented.
Dropping a borrowed alias destroys a still-owned object · case 05
A borrowed pointer either keeps an object alive or decrements an ownership count it never incremented.
Cancellation leaves earlier acquired resources open · case 01
Cleanup is skipped after partial acquisition or stops when the first resource cleanup reports failure.
Cancellation leaves earlier acquired resources open · case 02
Cleanup is skipped after partial acquisition or stops when the first resource cleanup reports failure.
Cancellation leaves earlier acquired resources open · case 03
Cleanup is skipped after partial acquisition or stops when the first resource cleanup reports failure.
Cancellation leaves earlier acquired resources open · case 04
Cleanup is skipped after partial acquisition or stops when the first resource cleanup reports failure.
Cancellation leaves earlier acquired resources open · case 05
Cleanup is skipped after partial acquisition or stops when the first resource cleanup reports failure.
A cache evicts the entry it most recently served · case 01
Insertion order is mistaken for recency, or updating an existing value fails to refresh that recency.
A cache evicts the entry it most recently served · case 02
Insertion order is mistaken for recency, or updating an existing value fails to refresh that recency.
A cache evicts the entry it most recently served · case 03
Insertion order is mistaken for recency, or updating an existing value fails to refresh that recency.
A cache evicts the entry it most recently served · case 04
Insertion order is mistaken for recency, or updating an existing value fails to refresh that recency.
A cache evicts the entry it most recently served · case 05
Insertion order is mistaken for recency, or updating an existing value fails to refresh that recency.
An unrelated release creates a phantom semaphore permit · case 01
More callers enter than capacity permits after a duplicate or unowned release.
An unrelated release creates a phantom semaphore permit · case 02
More callers enter than capacity permits after a duplicate or unowned release.
An unrelated release creates a phantom semaphore permit · case 03
More callers enter than capacity permits after a duplicate or unowned release.
An unrelated release creates a phantom semaphore permit · case 04
More callers enter than capacity permits after a duplicate or unowned release.
An unrelated release creates a phantom semaphore permit · case 05
More callers enter than capacity permits after a duplicate or unowned release.
A busy batch never reaches its flush deadline · case 01
Each arrival postpones a batch timer, so sustained low-rate traffic starves publication.
A busy batch never reaches its flush deadline · case 02
Each arrival postpones a batch timer, so sustained low-rate traffic starves publication.
A busy batch never reaches its flush deadline · case 03
Each arrival postpones a batch timer, so sustained low-rate traffic starves publication.
A busy batch never reaches its flush deadline · case 04
Each arrival postpones a batch timer, so sustained low-rate traffic starves publication.
A busy batch never reaches its flush deadline · case 05
Each arrival postpones a batch timer, so sustained low-rate traffic starves publication.
Callback duration accumulates into periodic task drift · case 01
A task sleeps a full period after finishing, or the attempted correction schedules overlapping callbacks.
Callback duration accumulates into periodic task drift · case 02
A task sleeps a full period after finishing, or the attempted correction schedules overlapping callbacks.
Callback duration accumulates into periodic task drift · case 03
A task sleeps a full period after finishing, or the attempted correction schedules overlapping callbacks.
Callback duration accumulates into periodic task drift · case 04
A task sleeps a full period after finishing, or the attempted correction schedules overlapping callbacks.
Callback duration accumulates into periodic task drift · case 05
A task sleeps a full period after finishing, or the attempted correction schedules overlapping callbacks.
A stale handle returns a newly checked-out object to the pool · case 01
The same slot becomes available while a later borrower still owns it.
A stale handle returns a newly checked-out object to the pool · case 02
The same slot becomes available while a later borrower still owns it.
A stale handle returns a newly checked-out object to the pool · case 03
The same slot becomes available while a later borrower still owns it.
A stale handle returns a newly checked-out object to the pool · case 04
The same slot becomes available while a later borrower still owns it.
A stale handle returns a newly checked-out object to the pool · case 05
The same slot becomes available while a later borrower still owns it.
Mutation changes what an established iterator visits · case 01
Inserting, deleting or replacing source elements alters an iteration that promised a stable snapshot.
Mutation changes what an established iterator visits · case 02
Inserting, deleting or replacing source elements alters an iteration that promised a stable snapshot.
Mutation changes what an established iterator visits · case 03
Inserting, deleting or replacing source elements alters an iteration that promised a stable snapshot.
Mutation changes what an established iterator visits · case 04
Inserting, deleting or replacing source elements alters an iteration that promised a stable snapshot.
Mutation changes what an established iterator visits · case 05
Inserting, deleting or replacing source elements alters an iteration that promised a stable snapshot.
Adding a calendar month drifts past the target month · case 01
A month offset expressed as thirty days lands on the wrong date, or a blanket day cap loses valid month-end days.
Adding a calendar month drifts past the target month · case 02
A month offset expressed as thirty days lands on the wrong date, or a blanket day cap loses valid month-end days.
Adding a calendar month drifts past the target month · case 03
A month offset expressed as thirty days lands on the wrong date, or a blanket day cap loses valid month-end days.
Adding a calendar month drifts past the target month · case 04
A month offset expressed as thirty days lands on the wrong date, or a blanket day cap loses valid month-end days.
Adding a calendar month drifts past the target month · case 05
A month offset expressed as thirty days lands on the wrong date, or a blanket day cap loses valid month-end days.
Truncating a negative epoch fraction selects the next second · case 01
An instant just before the Unix epoch is assigned to second zero, or rounding moves a positive fraction into a later second.
Truncating a negative epoch fraction selects the next second · case 02
An instant just before the Unix epoch is assigned to second zero, or rounding moves a positive fraction into a later second.
Truncating a negative epoch fraction selects the next second · case 03
An instant just before the Unix epoch is assigned to second zero, or rounding moves a positive fraction into a later second.
Truncating a negative epoch fraction selects the next second · case 04
An instant just before the Unix epoch is assigned to second zero, or rounding moves a positive fraction into a later second.
Truncating a negative epoch fraction selects the next second · case 05
An instant just before the Unix epoch is assigned to second zero, or rounding moves a positive fraction into a later second.
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 ↗