FAILURE MAP
← Case archive

FA-72181 / Error-correcting codes / Open access

Row retirement never expires old corrected errors · case 01

Rows with sparse, harmless corrected errors are retired.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The history is appended without dropping entries older than the window.

VERIFIED REPAIR

Keep only entries newer than time - window before counting.

Unsuccessful approach: Keeping entries exactly window old counts an expired error.

Case contract

Memory-controller ECC policy. events are [time, row, kind] with kind "ce" (corrected) or "ue" (uncorrectable), processed in time order (stable for equal times). A "ue" retires its row immediately. A "ce" is added to the row's history, entries at or before time - window expire, and the row retires when the remaining count reaches the threshold. Events for a retired row are ignored. Return sorted [row, retirement time] pairs.

Why this case matters

Servers retire DRAM rows that show repeated corrected errors before they turn uncorrectable.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(events, window, threshold):
    retired = {}
    hist = {}
    for t, row, kind in sorted(events, key=lambda e: e[0]):
        if row in retired:
            continue
        if kind == 'ue':
            retired[row] = t
            continue
        h = hist.get(row, []) + [t]
        hist[row] = h
        if len(h) >= threshold:
            retired[row] = t
    return sorted([rw, tm] for rw, tm in retired.items())
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[[21, 9, "ce"], [27, 2, "ue"], [0, 2, "ue"], [21, 1, "ce"], [9, 10...', [[[21, 9, 'ce'], [27, 2, 'ue'], [0, 2, 'ue'], [21, 1, 'ce'], [9, 10, 'ce'], [0, 1, 'ce']], 5, 2], [[2, 0]]], ['regression [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[35, 3, "ce"], [11, 1, "ce"], [8, 1, "ce"], [28, 3, "ce"], [3, 10...', [[[35, 3, 'ce'], [11, 1, 'ce'], [8, 1, 'ce'], [28, 3, 'ce'], [3, 10, 'ue'], [23, 3, 'ce'], [13, 10, 'ce']], 15, 3], [[3, 35], [10, 3]]], ['control [[[2, 10, "ue"], [35, 1, "ce"], [6, 3, "ue"], [37, 10, "ce"]], 10, 3]', [[[2, 10, 'ue'], [35, 1, 'ce'], [6, 3, 'ue'], [37, 10, 'ce']], 10, 3], [[3, 6], [10, 2]]], ['control [[[5, 9, "ce"], [3, 10, "ue"], [23, 1, "ce"]], 15, 3]', [[[5, 9, 'ce'], [3, 10, 'ue'], [23, 1, 'ce']], 15, 3], [[10, 3]]], ['control [[[38, 2, "ce"], [26, 10, "ce"], [5, 1, "ce"], [32, 2, "ce"]], 5, 3]', [[[38, 2, 'ce'], [26, 10, 'ce'], [5, 1, 'ce'], [32, 2, 'ce']], 5, 3], []], ['control [[[1, 10, "ce"], [11, 10, "ue"], [29, 10, "ce"]], 5, 2]', [[[1, 10, 'ce'], [11, 10, 'ue'], [29, 10, 'ce']], 5, 2], [[10, 11]]]], [['regression [[[27, 3, "ce"], [2, 1, "ce"], [8, 1, "ce"], [28, 10, "ce"], [25, 1...', [[[27, 3, 'ce'], [2, 1, 'ce'], [8, 1, 'ce'], [28, 10, 'ce'], [25, 1, 'ce'], [19, 10, 'ce'], [8, 2, 'ue'], [7, 10, 'ce']], 5, 2], [[2, 8]]], ['regression [[[3, 2, "ue"], [11, 1, "ce"], [29, 1, "ce"], [28, 3, "ce"]], 5, 2]', [[[3, 2, 'ue'], [11, 1, 'ce'], [29, 1, 'ce'], [28, 3, 'ce']], 5, 2], [[2, 3]]], ['partial-repair [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[30, 1, "ce"], [30, 1, "ce"], [0, 3, "ce"], [16, 1, "ue"], [21, 3...', [[[30, 1, 'ce'], [30, 1, 'ce'], [0, 3, 'ce'], [16, 1, 'ue'], [21, 3, 'ue'], [33, 3, 'ce'], [30, 3, 'ue'], [29, 9, 'ue'], [1, 9, 'ce']], 15, 2], [[1, 16], [3, 21], [9, 29]]], ['control [[[3, 3, "ue"], [24, 2, "ce"], [16, 1, "ue"], [12, 3, "ce"], [18, 3...', [[[3, 3, 'ue'], [24, 2, 'ce'], [16, 1, 'ue'], [12, 3, 'ce'], [18, 3, 'ce'], [3, 1, 'ce'], [2, 3, 'ce']], 5, 3], [[1, 16], [3, 3]]], ['control [[[32, 2, "ce"], [16, 10, "ue"], [26, 1, "ue"], [3, 10, "ce"], [1, ...', [[[32, 2, 'ce'], [16, 10, 'ue'], [26, 1, 'ue'], [3, 10, 'ce'], [1, 2, 'ce']], 10, 3], [[1, 26], [10, 16]]], ['control [[[15, 3, "ce"], [35, 9, "ce"], [0, 3, "ue"]], 5, 2]', [[[15, 3, 'ce'], [35, 9, 'ce'], [0, 3, 'ue']], 5, 2], [[3, 0]]]], [['regression [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['regression [[[32, 2, "ue"], [1, 1, "ue"], [28, 9, "ce"], [20, 10, "ce"], [13, ...', [[[32, 2, 'ue'], [1, 1, 'ue'], [28, 9, 'ce'], [20, 10, 'ce'], [13, 10, 'ce'], [28, 10, 'ce'], [6, 9, 'ce'], [36, 3, 'ce']], 15, 2], [[1, 1], [2, 32], [10, 20]]], ['partial-repair [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['control [[[26, 9, "ce"], [40, 3, "ce"], [26, 10, "ce"], [40, 9, "ce"], [23,...', [[[26, 9, 'ce'], [40, 3, 'ce'], [26, 10, 'ce'], [40, 9, 'ce'], [23, 10, 'ue'], [9, 10, 'ce'], [21, 9, 'ce'], [0, 3, 'ce'], [29, 9, 'ue'], [8, 1, 'ce']], 5, 3], [[9, 29], [10, 23]]], ['control [[[39, 10, "ce"], [4, 3, "ce"], [20, 2, "ce"], [33, 1, "ce"]], 15, 3]', [[[39, 10, 'ce'], [4, 3, 'ce'], [20, 2, 'ce'], [33, 1, 'ce']], 15, 3], []], ['control [[[0, 1, "ce"], [9, 1, "ce"]], 10, 2]', [[[0, 1, 'ce'], [9, 1, 'ce']], 10, 2], [[1, 9]]], ['control [[[5, 2, "ue"], [6, 2, "ce"], [7, 2, "ue"]], 10, 3]', [[[5, 2, 'ue'], [6, 2, 'ce'], [7, 2, 'ue']], 10, 3], [[2, 5]]], ['control [[[3, 1, "ce"], [1, 1, "ce"], [2, 4, "ce"]], 5, 2]', [[[3, 1, 'ce'], [1, 1, 'ce'], [2, 4, 'ce']], 5, 2], [[1, 3]]]], [['regression [[[21, 9, "ce"], [27, 2, "ue"], [0, 2, "ue"], [21, 1, "ce"], [9, 10...', [[[21, 9, 'ce'], [27, 2, 'ue'], [0, 2, 'ue'], [21, 1, 'ce'], [9, 10, 'ce'], [0, 1, 'ce']], 5, 2], [[2, 0]]], ['regression [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[0, 1, "ce"], [1, 2, "ce"], [2, 3, "ce"]], 10, 2]', [[[0, 1, 'ce'], [1, 2, 'ce'], [2, 3, 'ce']], 10, 2], []], ['control [[[0, 8, "ce"], [1, 9, "ce"]], 10, 2]', [[[0, 8, 'ce'], [1, 9, 'ce']], 10, 2], []], ['control [[], 10, 2]', [[], 10, 2], []], ['control [[[35, 3, "ce"], [11, 1, "ce"], [8, 1, "ce"], [28, 3, "ce"], [3, 10...', [[[35, 3, 'ce'], [11, 1, 'ce'], [8, 1, 'ce'], [28, 3, 'ce'], [3, 10, 'ue'], [23, 3, 'ce'], [13, 10, 'ce']], 15, 3], [[3, 35], [10, 3]]], ['control [[[2, 10, "ue"], [35, 1, "ce"], [6, 3, "ue"], [37, 10, "ce"]], 10, 3]', [[[2, 10, 'ue'], [35, 1, 'ce'], [6, 3, 'ue'], [37, 10, 'ce']], 10, 3], [[3, 6], [10, 2]]]], [['regression [[[27, 3, "ce"], [2, 1, "ce"], [8, 1, "ce"], [28, 10, "ce"], [25, 1...', [[[27, 3, 'ce'], [2, 1, 'ce'], [8, 1, 'ce'], [28, 10, 'ce'], [25, 1, 'ce'], [19, 10, 'ce'], [8, 2, 'ue'], [7, 10, 'ce']], 5, 2], [[2, 8]]], ['regression [[[3, 2, "ue"], [11, 1, "ce"], [29, 1, "ce"], [28, 3, "ce"]], 5, 2]', [[[3, 2, 'ue'], [11, 1, 'ce'], [29, 1, 'ce'], [28, 3, 'ce']], 5, 2], [[2, 3]]], ['partial-repair [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[5, 9, "ce"], [3, 10, "ue"], [23, 1, "ce"]], 15, 3]', [[[5, 9, 'ce'], [3, 10, 'ue'], [23, 1, 'ce']], 15, 3], [[10, 3]]], ['control [[[38, 2, "ce"], [26, 10, "ce"], [5, 1, "ce"], [32, 2, "ce"]], 5, 3]', [[[38, 2, 'ce'], [26, 10, 'ce'], [5, 1, 'ce'], [32, 2, 'ce']], 5, 3], []], ['control [[[1, 10, "ce"], [11, 10, "ue"], [29, 10, "ce"]], 5, 2]', [[[1, 10, 'ce'], [11, 10, 'ue'], [29, 10, 'ce']], 5, 2], [[10, 11]]], ['control [[[30, 1, "ce"], [30, 1, "ce"], [0, 3, "ce"], [16, 1, "ue"], [21, 3...', [[[30, 1, 'ce'], [30, 1, 'ce'], [0, 3, 'ce'], [16, 1, 'ue'], [21, 3, 'ue'], [33, 3, 'ce'], [30, 3, 'ue'], [29, 9, 'ue'], [1, 9, 'ce']], 15, 2], [[1, 16], [3, 21], [9, 29]]]]]
for label, args, expected in fixtures[N - 1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression [[[21, 9, "ce"], [27, 2, "ue"], [0, 2, "ue"], [21, 1, "ce"], [9, 10...[[1, 21], [2, 0]][[2, 0]]Failed
regression [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...[[3, 22], [10, 20]][[3, 22]]Failed
partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...[[1, 37], [10, 38]][[1, 37]]Failed
control [[[35, 3, "ce"], [11, 1, "ce"], [8, 1, "ce"], [28, 3, "ce"], [3, 10...[[3, 35], [10, 3]][[3, 35], [10, 3]]Passed
control [[[2, 10, "ue"], [35, 1, "ce"], [6, 3, "ue"], [37, 10, "ce"]], 10, 3][[3, 6], [10, 2]][[3, 6], [10, 2]]Passed
control [[[5, 9, "ce"], [3, 10, "ue"], [23, 1, "ce"]], 15, 3][[10, 3]][[10, 3]]Passed
control [[[38, 2, "ce"], [26, 10, "ce"], [5, 1, "ce"], [32, 2, "ce"]], 5, 3][][]Passed
control [[[1, 10, "ce"], [11, 10, "ue"], [29, 10, "ce"]], 5, 2][[10, 11]][[10, 11]]Passed

SHA-256 / 8943f3a155811e6a4fda0167ffba1a2d8fd3839b03102c5a355f4066ca5f1935

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(events, window, threshold):
    retired = {}
    hist = {}
    for t, row, kind in sorted(events, key=lambda e: e[0]):
        if row in retired:
            continue
        if kind == 'ue':
            retired[row] = t
            continue
        h = [x for x in hist.get(row, []) if x >= t - window] + [t]
        hist[row] = h
        if len(h) >= threshold:
            retired[row] = t
    return sorted([rw, tm] for rw, tm in retired.items())
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[[21, 9, "ce"], [27, 2, "ue"], [0, 2, "ue"], [21, 1, "ce"], [9, 10...', [[[21, 9, 'ce'], [27, 2, 'ue'], [0, 2, 'ue'], [21, 1, 'ce'], [9, 10, 'ce'], [0, 1, 'ce']], 5, 2], [[2, 0]]], ['regression [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[35, 3, "ce"], [11, 1, "ce"], [8, 1, "ce"], [28, 3, "ce"], [3, 10...', [[[35, 3, 'ce'], [11, 1, 'ce'], [8, 1, 'ce'], [28, 3, 'ce'], [3, 10, 'ue'], [23, 3, 'ce'], [13, 10, 'ce']], 15, 3], [[3, 35], [10, 3]]], ['control [[[2, 10, "ue"], [35, 1, "ce"], [6, 3, "ue"], [37, 10, "ce"]], 10, 3]', [[[2, 10, 'ue'], [35, 1, 'ce'], [6, 3, 'ue'], [37, 10, 'ce']], 10, 3], [[3, 6], [10, 2]]], ['control [[[5, 9, "ce"], [3, 10, "ue"], [23, 1, "ce"]], 15, 3]', [[[5, 9, 'ce'], [3, 10, 'ue'], [23, 1, 'ce']], 15, 3], [[10, 3]]], ['control [[[38, 2, "ce"], [26, 10, "ce"], [5, 1, "ce"], [32, 2, "ce"]], 5, 3]', [[[38, 2, 'ce'], [26, 10, 'ce'], [5, 1, 'ce'], [32, 2, 'ce']], 5, 3], []], ['control [[[1, 10, "ce"], [11, 10, "ue"], [29, 10, "ce"]], 5, 2]', [[[1, 10, 'ce'], [11, 10, 'ue'], [29, 10, 'ce']], 5, 2], [[10, 11]]]], [['regression [[[27, 3, "ce"], [2, 1, "ce"], [8, 1, "ce"], [28, 10, "ce"], [25, 1...', [[[27, 3, 'ce'], [2, 1, 'ce'], [8, 1, 'ce'], [28, 10, 'ce'], [25, 1, 'ce'], [19, 10, 'ce'], [8, 2, 'ue'], [7, 10, 'ce']], 5, 2], [[2, 8]]], ['regression [[[3, 2, "ue"], [11, 1, "ce"], [29, 1, "ce"], [28, 3, "ce"]], 5, 2]', [[[3, 2, 'ue'], [11, 1, 'ce'], [29, 1, 'ce'], [28, 3, 'ce']], 5, 2], [[2, 3]]], ['partial-repair [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[30, 1, "ce"], [30, 1, "ce"], [0, 3, "ce"], [16, 1, "ue"], [21, 3...', [[[30, 1, 'ce'], [30, 1, 'ce'], [0, 3, 'ce'], [16, 1, 'ue'], [21, 3, 'ue'], [33, 3, 'ce'], [30, 3, 'ue'], [29, 9, 'ue'], [1, 9, 'ce']], 15, 2], [[1, 16], [3, 21], [9, 29]]], ['control [[[3, 3, "ue"], [24, 2, "ce"], [16, 1, "ue"], [12, 3, "ce"], [18, 3...', [[[3, 3, 'ue'], [24, 2, 'ce'], [16, 1, 'ue'], [12, 3, 'ce'], [18, 3, 'ce'], [3, 1, 'ce'], [2, 3, 'ce']], 5, 3], [[1, 16], [3, 3]]], ['control [[[32, 2, "ce"], [16, 10, "ue"], [26, 1, "ue"], [3, 10, "ce"], [1, ...', [[[32, 2, 'ce'], [16, 10, 'ue'], [26, 1, 'ue'], [3, 10, 'ce'], [1, 2, 'ce']], 10, 3], [[1, 26], [10, 16]]], ['control [[[15, 3, "ce"], [35, 9, "ce"], [0, 3, "ue"]], 5, 2]', [[[15, 3, 'ce'], [35, 9, 'ce'], [0, 3, 'ue']], 5, 2], [[3, 0]]]], [['regression [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['regression [[[32, 2, "ue"], [1, 1, "ue"], [28, 9, "ce"], [20, 10, "ce"], [13, ...', [[[32, 2, 'ue'], [1, 1, 'ue'], [28, 9, 'ce'], [20, 10, 'ce'], [13, 10, 'ce'], [28, 10, 'ce'], [6, 9, 'ce'], [36, 3, 'ce']], 15, 2], [[1, 1], [2, 32], [10, 20]]], ['partial-repair [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['control [[[26, 9, "ce"], [40, 3, "ce"], [26, 10, "ce"], [40, 9, "ce"], [23,...', [[[26, 9, 'ce'], [40, 3, 'ce'], [26, 10, 'ce'], [40, 9, 'ce'], [23, 10, 'ue'], [9, 10, 'ce'], [21, 9, 'ce'], [0, 3, 'ce'], [29, 9, 'ue'], [8, 1, 'ce']], 5, 3], [[9, 29], [10, 23]]], ['control [[[39, 10, "ce"], [4, 3, "ce"], [20, 2, "ce"], [33, 1, "ce"]], 15, 3]', [[[39, 10, 'ce'], [4, 3, 'ce'], [20, 2, 'ce'], [33, 1, 'ce']], 15, 3], []], ['control [[[0, 1, "ce"], [9, 1, "ce"]], 10, 2]', [[[0, 1, 'ce'], [9, 1, 'ce']], 10, 2], [[1, 9]]], ['control [[[5, 2, "ue"], [6, 2, "ce"], [7, 2, "ue"]], 10, 3]', [[[5, 2, 'ue'], [6, 2, 'ce'], [7, 2, 'ue']], 10, 3], [[2, 5]]], ['control [[[3, 1, "ce"], [1, 1, "ce"], [2, 4, "ce"]], 5, 2]', [[[3, 1, 'ce'], [1, 1, 'ce'], [2, 4, 'ce']], 5, 2], [[1, 3]]]], [['regression [[[21, 9, "ce"], [27, 2, "ue"], [0, 2, "ue"], [21, 1, "ce"], [9, 10...', [[[21, 9, 'ce'], [27, 2, 'ue'], [0, 2, 'ue'], [21, 1, 'ce'], [9, 10, 'ce'], [0, 1, 'ce']], 5, 2], [[2, 0]]], ['regression [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[0, 1, "ce"], [1, 2, "ce"], [2, 3, "ce"]], 10, 2]', [[[0, 1, 'ce'], [1, 2, 'ce'], [2, 3, 'ce']], 10, 2], []], ['control [[[0, 8, "ce"], [1, 9, "ce"]], 10, 2]', [[[0, 8, 'ce'], [1, 9, 'ce']], 10, 2], []], ['control [[], 10, 2]', [[], 10, 2], []], ['control [[[35, 3, "ce"], [11, 1, "ce"], [8, 1, "ce"], [28, 3, "ce"], [3, 10...', [[[35, 3, 'ce'], [11, 1, 'ce'], [8, 1, 'ce'], [28, 3, 'ce'], [3, 10, 'ue'], [23, 3, 'ce'], [13, 10, 'ce']], 15, 3], [[3, 35], [10, 3]]], ['control [[[2, 10, "ue"], [35, 1, "ce"], [6, 3, "ue"], [37, 10, "ce"]], 10, 3]', [[[2, 10, 'ue'], [35, 1, 'ce'], [6, 3, 'ue'], [37, 10, 'ce']], 10, 3], [[3, 6], [10, 2]]]], [['regression [[[27, 3, "ce"], [2, 1, "ce"], [8, 1, "ce"], [28, 10, "ce"], [25, 1...', [[[27, 3, 'ce'], [2, 1, 'ce'], [8, 1, 'ce'], [28, 10, 'ce'], [25, 1, 'ce'], [19, 10, 'ce'], [8, 2, 'ue'], [7, 10, 'ce']], 5, 2], [[2, 8]]], ['regression [[[3, 2, "ue"], [11, 1, "ce"], [29, 1, "ce"], [28, 3, "ce"]], 5, 2]', [[[3, 2, 'ue'], [11, 1, 'ce'], [29, 1, 'ce'], [28, 3, 'ce']], 5, 2], [[2, 3]]], ['partial-repair [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[5, 9, "ce"], [3, 10, "ue"], [23, 1, "ce"]], 15, 3]', [[[5, 9, 'ce'], [3, 10, 'ue'], [23, 1, 'ce']], 15, 3], [[10, 3]]], ['control [[[38, 2, "ce"], [26, 10, "ce"], [5, 1, "ce"], [32, 2, "ce"]], 5, 3]', [[[38, 2, 'ce'], [26, 10, 'ce'], [5, 1, 'ce'], [32, 2, 'ce']], 5, 3], []], ['control [[[1, 10, "ce"], [11, 10, "ue"], [29, 10, "ce"]], 5, 2]', [[[1, 10, 'ce'], [11, 10, 'ue'], [29, 10, 'ce']], 5, 2], [[10, 11]]], ['control [[[30, 1, "ce"], [30, 1, "ce"], [0, 3, "ce"], [16, 1, "ue"], [21, 3...', [[[30, 1, 'ce'], [30, 1, 'ce'], [0, 3, 'ce'], [16, 1, 'ue'], [21, 3, 'ue'], [33, 3, 'ce'], [30, 3, 'ue'], [29, 9, 'ue'], [1, 9, 'ce']], 15, 2], [[1, 16], [3, 21], [9, 29]]]]]
for label, args, expected in fixtures[N - 1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression [[[21, 9, "ce"], [27, 2, "ue"], [0, 2, "ue"], [21, 1, "ce"], [9, 10...[[2, 0]][[2, 0]]Passed
regression [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...[[3, 22], [10, 20]][[3, 22]]Failed
partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...[[1, 37], [10, 38]][[1, 37]]Failed
control [[[35, 3, "ce"], [11, 1, "ce"], [8, 1, "ce"], [28, 3, "ce"], [3, 10...[[3, 35], [10, 3]][[3, 35], [10, 3]]Passed
control [[[2, 10, "ue"], [35, 1, "ce"], [6, 3, "ue"], [37, 10, "ce"]], 10, 3][[3, 6], [10, 2]][[3, 6], [10, 2]]Passed
control [[[5, 9, "ce"], [3, 10, "ue"], [23, 1, "ce"]], 15, 3][[10, 3]][[10, 3]]Passed
control [[[38, 2, "ce"], [26, 10, "ce"], [5, 1, "ce"], [32, 2, "ce"]], 5, 3][][]Passed
control [[[1, 10, "ce"], [11, 10, "ue"], [29, 10, "ce"]], 5, 2][[10, 11]][[10, 11]]Passed

SHA-256 / 05a6a2c03911c4a831aa618c976bc3b80462732bcd6f63c03f314fcc9a6cace7

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(events, window, threshold):
    retired = {}
    hist = {}
    for t, row, kind in sorted(events, key=lambda e: e[0]):
        if row in retired:
            continue
        if kind == 'ue':
            retired[row] = t
            continue
        h = [x for x in hist.get(row, []) if x > t - window] + [t]
        hist[row] = h
        if len(h) >= threshold:
            retired[row] = t
    return sorted([rw, tm] for rw, tm in retired.items())
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression [[[21, 9, "ce"], [27, 2, "ue"], [0, 2, "ue"], [21, 1, "ce"], [9, 10...', [[[21, 9, 'ce'], [27, 2, 'ue'], [0, 2, 'ue'], [21, 1, 'ce'], [9, 10, 'ce'], [0, 1, 'ce']], 5, 2], [[2, 0]]], ['regression [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[35, 3, "ce"], [11, 1, "ce"], [8, 1, "ce"], [28, 3, "ce"], [3, 10...', [[[35, 3, 'ce'], [11, 1, 'ce'], [8, 1, 'ce'], [28, 3, 'ce'], [3, 10, 'ue'], [23, 3, 'ce'], [13, 10, 'ce']], 15, 3], [[3, 35], [10, 3]]], ['control [[[2, 10, "ue"], [35, 1, "ce"], [6, 3, "ue"], [37, 10, "ce"]], 10, 3]', [[[2, 10, 'ue'], [35, 1, 'ce'], [6, 3, 'ue'], [37, 10, 'ce']], 10, 3], [[3, 6], [10, 2]]], ['control [[[5, 9, "ce"], [3, 10, "ue"], [23, 1, "ce"]], 15, 3]', [[[5, 9, 'ce'], [3, 10, 'ue'], [23, 1, 'ce']], 15, 3], [[10, 3]]], ['control [[[38, 2, "ce"], [26, 10, "ce"], [5, 1, "ce"], [32, 2, "ce"]], 5, 3]', [[[38, 2, 'ce'], [26, 10, 'ce'], [5, 1, 'ce'], [32, 2, 'ce']], 5, 3], []], ['control [[[1, 10, "ce"], [11, 10, "ue"], [29, 10, "ce"]], 5, 2]', [[[1, 10, 'ce'], [11, 10, 'ue'], [29, 10, 'ce']], 5, 2], [[10, 11]]]], [['regression [[[27, 3, "ce"], [2, 1, "ce"], [8, 1, "ce"], [28, 10, "ce"], [25, 1...', [[[27, 3, 'ce'], [2, 1, 'ce'], [8, 1, 'ce'], [28, 10, 'ce'], [25, 1, 'ce'], [19, 10, 'ce'], [8, 2, 'ue'], [7, 10, 'ce']], 5, 2], [[2, 8]]], ['regression [[[3, 2, "ue"], [11, 1, "ce"], [29, 1, "ce"], [28, 3, "ce"]], 5, 2]', [[[3, 2, 'ue'], [11, 1, 'ce'], [29, 1, 'ce'], [28, 3, 'ce']], 5, 2], [[2, 3]]], ['partial-repair [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[30, 1, "ce"], [30, 1, "ce"], [0, 3, "ce"], [16, 1, "ue"], [21, 3...', [[[30, 1, 'ce'], [30, 1, 'ce'], [0, 3, 'ce'], [16, 1, 'ue'], [21, 3, 'ue'], [33, 3, 'ce'], [30, 3, 'ue'], [29, 9, 'ue'], [1, 9, 'ce']], 15, 2], [[1, 16], [3, 21], [9, 29]]], ['control [[[3, 3, "ue"], [24, 2, "ce"], [16, 1, "ue"], [12, 3, "ce"], [18, 3...', [[[3, 3, 'ue'], [24, 2, 'ce'], [16, 1, 'ue'], [12, 3, 'ce'], [18, 3, 'ce'], [3, 1, 'ce'], [2, 3, 'ce']], 5, 3], [[1, 16], [3, 3]]], ['control [[[32, 2, "ce"], [16, 10, "ue"], [26, 1, "ue"], [3, 10, "ce"], [1, ...', [[[32, 2, 'ce'], [16, 10, 'ue'], [26, 1, 'ue'], [3, 10, 'ce'], [1, 2, 'ce']], 10, 3], [[1, 26], [10, 16]]], ['control [[[15, 3, "ce"], [35, 9, "ce"], [0, 3, "ue"]], 5, 2]', [[[15, 3, 'ce'], [35, 9, 'ce'], [0, 3, 'ue']], 5, 2], [[3, 0]]]], [['regression [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['regression [[[32, 2, "ue"], [1, 1, "ue"], [28, 9, "ce"], [20, 10, "ce"], [13, ...', [[[32, 2, 'ue'], [1, 1, 'ue'], [28, 9, 'ce'], [20, 10, 'ce'], [13, 10, 'ce'], [28, 10, 'ce'], [6, 9, 'ce'], [36, 3, 'ce']], 15, 2], [[1, 1], [2, 32], [10, 20]]], ['partial-repair [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['control [[[26, 9, "ce"], [40, 3, "ce"], [26, 10, "ce"], [40, 9, "ce"], [23,...', [[[26, 9, 'ce'], [40, 3, 'ce'], [26, 10, 'ce'], [40, 9, 'ce'], [23, 10, 'ue'], [9, 10, 'ce'], [21, 9, 'ce'], [0, 3, 'ce'], [29, 9, 'ue'], [8, 1, 'ce']], 5, 3], [[9, 29], [10, 23]]], ['control [[[39, 10, "ce"], [4, 3, "ce"], [20, 2, "ce"], [33, 1, "ce"]], 15, 3]', [[[39, 10, 'ce'], [4, 3, 'ce'], [20, 2, 'ce'], [33, 1, 'ce']], 15, 3], []], ['control [[[0, 1, "ce"], [9, 1, "ce"]], 10, 2]', [[[0, 1, 'ce'], [9, 1, 'ce']], 10, 2], [[1, 9]]], ['control [[[5, 2, "ue"], [6, 2, "ce"], [7, 2, "ue"]], 10, 3]', [[[5, 2, 'ue'], [6, 2, 'ce'], [7, 2, 'ue']], 10, 3], [[2, 5]]], ['control [[[3, 1, "ce"], [1, 1, "ce"], [2, 4, "ce"]], 5, 2]', [[[3, 1, 'ce'], [1, 1, 'ce'], [2, 4, 'ce']], 5, 2], [[1, 3]]]], [['regression [[[21, 9, "ce"], [27, 2, "ue"], [0, 2, "ue"], [21, 1, "ce"], [9, 10...', [[[21, 9, 'ce'], [27, 2, 'ue'], [0, 2, 'ue'], [21, 1, 'ce'], [9, 10, 'ce'], [0, 1, 'ce']], 5, 2], [[2, 0]]], ['regression [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[0, 1, "ce"], [1, 2, "ce"], [2, 3, "ce"]], 10, 2]', [[[0, 1, 'ce'], [1, 2, 'ce'], [2, 3, 'ce']], 10, 2], []], ['control [[[0, 8, "ce"], [1, 9, "ce"]], 10, 2]', [[[0, 8, 'ce'], [1, 9, 'ce']], 10, 2], []], ['control [[], 10, 2]', [[], 10, 2], []], ['control [[[35, 3, "ce"], [11, 1, "ce"], [8, 1, "ce"], [28, 3, "ce"], [3, 10...', [[[35, 3, 'ce'], [11, 1, 'ce'], [8, 1, 'ce'], [28, 3, 'ce'], [3, 10, 'ue'], [23, 3, 'ce'], [13, 10, 'ce']], 15, 3], [[3, 35], [10, 3]]], ['control [[[2, 10, "ue"], [35, 1, "ce"], [6, 3, "ue"], [37, 10, "ce"]], 10, 3]', [[[2, 10, 'ue'], [35, 1, 'ce'], [6, 3, 'ue'], [37, 10, 'ce']], 10, 3], [[3, 6], [10, 2]]]], [['regression [[[27, 3, "ce"], [2, 1, "ce"], [8, 1, "ce"], [28, 10, "ce"], [25, 1...', [[[27, 3, 'ce'], [2, 1, 'ce'], [8, 1, 'ce'], [28, 10, 'ce'], [25, 1, 'ce'], [19, 10, 'ce'], [8, 2, 'ue'], [7, 10, 'ce']], 5, 2], [[2, 8]]], ['regression [[[3, 2, "ue"], [11, 1, "ce"], [29, 1, "ce"], [28, 3, "ce"]], 5, 2]', [[[3, 2, 'ue'], [11, 1, 'ce'], [29, 1, 'ce'], [28, 3, 'ce']], 5, 2], [[2, 3]]], ['partial-repair [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...', [[[39, 3, 'ce'], [20, 10, 'ce'], [16, 1, 'ce'], [20, 10, 'ce'], [22, 3, 'ue'], [40, 10, 'ce'], [15, 10, 'ce']], 5, 3], [[3, 22]]], ['partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...', [[[20, 1, 'ce'], [37, 1, 'ue'], [38, 10, 'ce'], [24, 1, 'ce'], [28, 10, 'ce'], [7, 9, 'ce'], [7, 2, 'ce'], [22, 9, 'ce'], [31, 10, 'ce']], 10, 3], [[1, 37]]], ['control [[[5, 9, "ce"], [3, 10, "ue"], [23, 1, "ce"]], 15, 3]', [[[5, 9, 'ce'], [3, 10, 'ue'], [23, 1, 'ce']], 15, 3], [[10, 3]]], ['control [[[38, 2, "ce"], [26, 10, "ce"], [5, 1, "ce"], [32, 2, "ce"]], 5, 3]', [[[38, 2, 'ce'], [26, 10, 'ce'], [5, 1, 'ce'], [32, 2, 'ce']], 5, 3], []], ['control [[[1, 10, "ce"], [11, 10, "ue"], [29, 10, "ce"]], 5, 2]', [[[1, 10, 'ce'], [11, 10, 'ue'], [29, 10, 'ce']], 5, 2], [[10, 11]]], ['control [[[30, 1, "ce"], [30, 1, "ce"], [0, 3, "ce"], [16, 1, "ue"], [21, 3...', [[[30, 1, 'ce'], [30, 1, 'ce'], [0, 3, 'ce'], [16, 1, 'ue'], [21, 3, 'ue'], [33, 3, 'ce'], [30, 3, 'ue'], [29, 9, 'ue'], [1, 9, 'ce']], 15, 2], [[1, 16], [3, 21], [9, 29]]]]]
for label, args, expected in fixtures[N - 1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression [[[21, 9, "ce"], [27, 2, "ue"], [0, 2, "ue"], [21, 1, "ce"], [9, 10...[[2, 0]][[2, 0]]Passed
regression [[[39, 3, "ce"], [20, 10, "ce"], [16, 1, "ce"], [20, 10, "ce"], [22...[[3, 22]][[3, 22]]Passed
partial-repair [[[20, 1, "ce"], [37, 1, "ue"], [38, 10, "ce"], [24, 1, "ce"], [28,...[[1, 37]][[1, 37]]Passed
control [[[35, 3, "ce"], [11, 1, "ce"], [8, 1, "ce"], [28, 3, "ce"], [3, 10...[[3, 35], [10, 3]][[3, 35], [10, 3]]Passed
control [[[2, 10, "ue"], [35, 1, "ce"], [6, 3, "ue"], [37, 10, "ce"]], 10, 3][[3, 6], [10, 2]][[3, 6], [10, 2]]Passed
control [[[5, 9, "ce"], [3, 10, "ue"], [23, 1, "ce"]], 15, 3][[10, 3]][[10, 3]]Passed
control [[[38, 2, "ce"], [26, 10, "ce"], [5, 1, "ce"], [32, 2, "ce"]], 5, 3][][]Passed
control [[[1, 10, "ce"], [11, 10, "ue"], [29, 10, "ce"]], 5, 2][[10, 11]][[10, 11]]Passed

SHA-256 / 6323c6871514cbb1691b86231913c19da2695a535bec4d8a126cdfa35e2bb205

Verification & scope

A deterministic, bounded teaching model of the named code under the stated contract; not a production codec. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:48:36.203962+00:00.

Case digest / f1dffcb82573d584826d24ea0a4135cb72d3fb9f40d60440bf473f4c9703b8bc