FA-45116 / Data systems / Open access
Scatter returns only explicitly updated lanes · case 01
Scatter returns only explicitly updated lanes.
ROOT CAUSE
masked-scatter-update: Scatter returns only explicitly updated lanes.
VERIFIED REPAIR
Preserve the stated physical representation and operation order: Apply an ordered scatter update to a column using [target-index,value,is-valid,is-selected] records. Unselected writes do nothing; selected null writes clear validity. Repeated targets use the final selected write, and untouched lanes retain both payload visibility and validity.
Unsuccessful approach: Sorting updated targets still drops untouched rows.
Case contract
Apply an ordered scatter update to a column using [target-index,value,is-valid,is-selected] records. Unselected writes do nothing; selected null writes clear validity. Repeated targets use the final selected write, and untouched lanes retain both payload visibility and validity.
Why this case matters
A bounded deterministic data engine model makes representation and changelog faults reproducible.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
try:
values,valid,updates=d
values=list(values); valid=list(valid)
for target,value,known,selected in updates:
if not selected: continue
values[target]=value
valid[target]=known
return [values[i] if valid[i] else None for i in dict.fromkeys(u[0] for u in updates)]
except (IndexError, KeyError, ValueError, StopIteration) as exc:
return {"representation_error": type(exc).__name__}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
check('nonzero target', solve([[1, 2, 3], [True, True, True], [[2, 4, True, True]]]), [1, 2, 4])
check('masked value', solve([[1, 2], [True, True], [[1, 3, True, False]]]), [1, 2])
check('masked null', solve([[1, 2], [True, True], [[1, 3, False, False]]]), [1, 2])
check('selected null', solve([[1, 2], [True, True], [[1, 3, False, True]]]), [1, None])
check('resurrect null', solve([[1, 2], [True, False], [[1, 3, True, True]]]), [1, 3])
check('repeated target', solve([[1, 2], [True, True], [[1, 3, True, True], [1, 4, True, True]]]), [1, 4])
check('middle validity', solve([[1, 2, 3], [True, True, True], [[1, 4, False, True]]]), [1, None, 3])
check('no writes', solve([[1, 2], [False, True], []]), [None, 2])
elif N == 2:
check('nonzero target', solve([[2, 3, 4], [True, True, True], [[2, 5, True, True]]]), [2, 3, 5])
check('masked value', solve([[2, 3], [True, True], [[1, 4, True, False]]]), [2, 3])
check('masked null', solve([[2, 3], [True, True], [[1, 4, False, False]]]), [2, 3])
check('selected null', solve([[2, 3], [True, True], [[1, 4, False, True]]]), [2, None])
check('resurrect null', solve([[2, 3], [True, False], [[1, 4, True, True]]]), [2, 4])
check('repeated target', solve([[2, 3], [True, True], [[1, 4, True, True], [1, 5, True, True]]]), [2, 5])
check('middle validity', solve([[2, 3, 4], [True, True, True], [[1, 5, False, True]]]), [2, None, 4])
check('no writes', solve([[2, 3], [False, True], []]), [None, 3])
elif N == 3:
check('nonzero target', solve([[3, 4, 5], [True, True, True], [[2, 6, True, True]]]), [3, 4, 6])
check('masked value', solve([[3, 4], [True, True], [[1, 5, True, False]]]), [3, 4])
check('masked null', solve([[3, 4], [True, True], [[1, 5, False, False]]]), [3, 4])
check('selected null', solve([[3, 4], [True, True], [[1, 5, False, True]]]), [3, None])
check('resurrect null', solve([[3, 4], [True, False], [[1, 5, True, True]]]), [3, 5])
check('repeated target', solve([[3, 4], [True, True], [[1, 5, True, True], [1, 6, True, True]]]), [3, 6])
check('middle validity', solve([[3, 4, 5], [True, True, True], [[1, 6, False, True]]]), [3, None, 5])
check('no writes', solve([[3, 4], [False, True], []]), [None, 4])
elif N == 4:
check('nonzero target', solve([[4, 5, 6], [True, True, True], [[2, 7, True, True]]]), [4, 5, 7])
check('masked value', solve([[4, 5], [True, True], [[1, 6, True, False]]]), [4, 5])
check('masked null', solve([[4, 5], [True, True], [[1, 6, False, False]]]), [4, 5])
check('selected null', solve([[4, 5], [True, True], [[1, 6, False, True]]]), [4, None])
check('resurrect null', solve([[4, 5], [True, False], [[1, 6, True, True]]]), [4, 6])
check('repeated target', solve([[4, 5], [True, True], [[1, 6, True, True], [1, 7, True, True]]]), [4, 7])
check('middle validity', solve([[4, 5, 6], [True, True, True], [[1, 7, False, True]]]), [4, None, 6])
check('no writes', solve([[4, 5], [False, True], []]), [None, 5])
elif N == 5:
check('nonzero target', solve([[5, 6, 7], [True, True, True], [[2, 8, True, True]]]), [5, 6, 8])
check('masked value', solve([[5, 6], [True, True], [[1, 7, True, False]]]), [5, 6])
check('masked null', solve([[5, 6], [True, True], [[1, 7, False, False]]]), [5, 6])
check('selected null', solve([[5, 6], [True, True], [[1, 7, False, True]]]), [5, None])
check('resurrect null', solve([[5, 6], [True, False], [[1, 7, True, True]]]), [5, 7])
check('repeated target', solve([[5, 6], [True, True], [[1, 7, True, True], [1, 8, True, True]]]), [5, 8])
check('middle validity', solve([[5, 6, 7], [True, True, True], [[1, 8, False, True]]]), [5, None, 7])
check('no writes', solve([[5, 6], [False, True], []]), [None, 6])
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| nonzero target | [4] | [1, 2, 4] | Failed |
| masked value | [2] | [1, 2] | Failed |
| masked null | [2] | [1, 2] | Failed |
| selected null | [None] | [1, None] | Failed |
| resurrect null | [3] | [1, 3] | Failed |
| repeated target | [4] | [1, 4] | Failed |
| middle validity | [None] | [1, None, 3] | Failed |
| no writes | [] | [None, 2] | Failed |
SHA-256 / 2f77460ce05b02a056ea8f9bdc7705a6da2236e810c1c606ab42f2f20bc68672
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
try:
values,valid,updates=d
values=list(values); valid=list(valid)
for target,value,known,selected in updates:
if not selected: continue
values[target]=value
valid[target]=known
return [values[i] if valid[i] else None for i in sorted(set(u[0] for u in updates))]
except (IndexError, KeyError, ValueError, StopIteration) as exc:
return {"representation_error": type(exc).__name__}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
check('nonzero target', solve([[1, 2, 3], [True, True, True], [[2, 4, True, True]]]), [1, 2, 4])
check('masked value', solve([[1, 2], [True, True], [[1, 3, True, False]]]), [1, 2])
check('masked null', solve([[1, 2], [True, True], [[1, 3, False, False]]]), [1, 2])
check('selected null', solve([[1, 2], [True, True], [[1, 3, False, True]]]), [1, None])
check('resurrect null', solve([[1, 2], [True, False], [[1, 3, True, True]]]), [1, 3])
check('repeated target', solve([[1, 2], [True, True], [[1, 3, True, True], [1, 4, True, True]]]), [1, 4])
check('middle validity', solve([[1, 2, 3], [True, True, True], [[1, 4, False, True]]]), [1, None, 3])
check('no writes', solve([[1, 2], [False, True], []]), [None, 2])
elif N == 2:
check('nonzero target', solve([[2, 3, 4], [True, True, True], [[2, 5, True, True]]]), [2, 3, 5])
check('masked value', solve([[2, 3], [True, True], [[1, 4, True, False]]]), [2, 3])
check('masked null', solve([[2, 3], [True, True], [[1, 4, False, False]]]), [2, 3])
check('selected null', solve([[2, 3], [True, True], [[1, 4, False, True]]]), [2, None])
check('resurrect null', solve([[2, 3], [True, False], [[1, 4, True, True]]]), [2, 4])
check('repeated target', solve([[2, 3], [True, True], [[1, 4, True, True], [1, 5, True, True]]]), [2, 5])
check('middle validity', solve([[2, 3, 4], [True, True, True], [[1, 5, False, True]]]), [2, None, 4])
check('no writes', solve([[2, 3], [False, True], []]), [None, 3])
elif N == 3:
check('nonzero target', solve([[3, 4, 5], [True, True, True], [[2, 6, True, True]]]), [3, 4, 6])
check('masked value', solve([[3, 4], [True, True], [[1, 5, True, False]]]), [3, 4])
check('masked null', solve([[3, 4], [True, True], [[1, 5, False, False]]]), [3, 4])
check('selected null', solve([[3, 4], [True, True], [[1, 5, False, True]]]), [3, None])
check('resurrect null', solve([[3, 4], [True, False], [[1, 5, True, True]]]), [3, 5])
check('repeated target', solve([[3, 4], [True, True], [[1, 5, True, True], [1, 6, True, True]]]), [3, 6])
check('middle validity', solve([[3, 4, 5], [True, True, True], [[1, 6, False, True]]]), [3, None, 5])
check('no writes', solve([[3, 4], [False, True], []]), [None, 4])
elif N == 4:
check('nonzero target', solve([[4, 5, 6], [True, True, True], [[2, 7, True, True]]]), [4, 5, 7])
check('masked value', solve([[4, 5], [True, True], [[1, 6, True, False]]]), [4, 5])
check('masked null', solve([[4, 5], [True, True], [[1, 6, False, False]]]), [4, 5])
check('selected null', solve([[4, 5], [True, True], [[1, 6, False, True]]]), [4, None])
check('resurrect null', solve([[4, 5], [True, False], [[1, 6, True, True]]]), [4, 6])
check('repeated target', solve([[4, 5], [True, True], [[1, 6, True, True], [1, 7, True, True]]]), [4, 7])
check('middle validity', solve([[4, 5, 6], [True, True, True], [[1, 7, False, True]]]), [4, None, 6])
check('no writes', solve([[4, 5], [False, True], []]), [None, 5])
elif N == 5:
check('nonzero target', solve([[5, 6, 7], [True, True, True], [[2, 8, True, True]]]), [5, 6, 8])
check('masked value', solve([[5, 6], [True, True], [[1, 7, True, False]]]), [5, 6])
check('masked null', solve([[5, 6], [True, True], [[1, 7, False, False]]]), [5, 6])
check('selected null', solve([[5, 6], [True, True], [[1, 7, False, True]]]), [5, None])
check('resurrect null', solve([[5, 6], [True, False], [[1, 7, True, True]]]), [5, 7])
check('repeated target', solve([[5, 6], [True, True], [[1, 7, True, True], [1, 8, True, True]]]), [5, 8])
check('middle validity', solve([[5, 6, 7], [True, True, True], [[1, 8, False, True]]]), [5, None, 7])
check('no writes', solve([[5, 6], [False, True], []]), [None, 6])
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| nonzero target | [4] | [1, 2, 4] | Failed |
| masked value | [2] | [1, 2] | Failed |
| masked null | [2] | [1, 2] | Failed |
| selected null | [None] | [1, None] | Failed |
| resurrect null | [3] | [1, 3] | Failed |
| repeated target | [4] | [1, 4] | Failed |
| middle validity | [None] | [1, None, 3] | Failed |
| no writes | [] | [None, 2] | Failed |
SHA-256 / 91144a2810fce655c973c7f5add70124de4190da8684eb15724ff0f69cb829f7
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
try:
values,valid,updates=d
values=list(values); valid=list(valid)
for target,value,known,selected in updates:
if not selected: continue
values[target]=value
valid[target]=known
return [v if valid[i] else None for i,v in enumerate(values)]
except (IndexError, KeyError, ValueError, StopIteration) as exc:
return {"representation_error": type(exc).__name__}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
check('nonzero target', solve([[1, 2, 3], [True, True, True], [[2, 4, True, True]]]), [1, 2, 4])
check('masked value', solve([[1, 2], [True, True], [[1, 3, True, False]]]), [1, 2])
check('masked null', solve([[1, 2], [True, True], [[1, 3, False, False]]]), [1, 2])
check('selected null', solve([[1, 2], [True, True], [[1, 3, False, True]]]), [1, None])
check('resurrect null', solve([[1, 2], [True, False], [[1, 3, True, True]]]), [1, 3])
check('repeated target', solve([[1, 2], [True, True], [[1, 3, True, True], [1, 4, True, True]]]), [1, 4])
check('middle validity', solve([[1, 2, 3], [True, True, True], [[1, 4, False, True]]]), [1, None, 3])
check('no writes', solve([[1, 2], [False, True], []]), [None, 2])
elif N == 2:
check('nonzero target', solve([[2, 3, 4], [True, True, True], [[2, 5, True, True]]]), [2, 3, 5])
check('masked value', solve([[2, 3], [True, True], [[1, 4, True, False]]]), [2, 3])
check('masked null', solve([[2, 3], [True, True], [[1, 4, False, False]]]), [2, 3])
check('selected null', solve([[2, 3], [True, True], [[1, 4, False, True]]]), [2, None])
check('resurrect null', solve([[2, 3], [True, False], [[1, 4, True, True]]]), [2, 4])
check('repeated target', solve([[2, 3], [True, True], [[1, 4, True, True], [1, 5, True, True]]]), [2, 5])
check('middle validity', solve([[2, 3, 4], [True, True, True], [[1, 5, False, True]]]), [2, None, 4])
check('no writes', solve([[2, 3], [False, True], []]), [None, 3])
elif N == 3:
check('nonzero target', solve([[3, 4, 5], [True, True, True], [[2, 6, True, True]]]), [3, 4, 6])
check('masked value', solve([[3, 4], [True, True], [[1, 5, True, False]]]), [3, 4])
check('masked null', solve([[3, 4], [True, True], [[1, 5, False, False]]]), [3, 4])
check('selected null', solve([[3, 4], [True, True], [[1, 5, False, True]]]), [3, None])
check('resurrect null', solve([[3, 4], [True, False], [[1, 5, True, True]]]), [3, 5])
check('repeated target', solve([[3, 4], [True, True], [[1, 5, True, True], [1, 6, True, True]]]), [3, 6])
check('middle validity', solve([[3, 4, 5], [True, True, True], [[1, 6, False, True]]]), [3, None, 5])
check('no writes', solve([[3, 4], [False, True], []]), [None, 4])
elif N == 4:
check('nonzero target', solve([[4, 5, 6], [True, True, True], [[2, 7, True, True]]]), [4, 5, 7])
check('masked value', solve([[4, 5], [True, True], [[1, 6, True, False]]]), [4, 5])
check('masked null', solve([[4, 5], [True, True], [[1, 6, False, False]]]), [4, 5])
check('selected null', solve([[4, 5], [True, True], [[1, 6, False, True]]]), [4, None])
check('resurrect null', solve([[4, 5], [True, False], [[1, 6, True, True]]]), [4, 6])
check('repeated target', solve([[4, 5], [True, True], [[1, 6, True, True], [1, 7, True, True]]]), [4, 7])
check('middle validity', solve([[4, 5, 6], [True, True, True], [[1, 7, False, True]]]), [4, None, 6])
check('no writes', solve([[4, 5], [False, True], []]), [None, 5])
elif N == 5:
check('nonzero target', solve([[5, 6, 7], [True, True, True], [[2, 8, True, True]]]), [5, 6, 8])
check('masked value', solve([[5, 6], [True, True], [[1, 7, True, False]]]), [5, 6])
check('masked null', solve([[5, 6], [True, True], [[1, 7, False, False]]]), [5, 6])
check('selected null', solve([[5, 6], [True, True], [[1, 7, False, True]]]), [5, None])
check('resurrect null', solve([[5, 6], [True, False], [[1, 7, True, True]]]), [5, 7])
check('repeated target', solve([[5, 6], [True, True], [[1, 7, True, True], [1, 8, True, True]]]), [5, 8])
check('middle validity', solve([[5, 6, 7], [True, True, True], [[1, 8, False, True]]]), [5, None, 7])
check('no writes', solve([[5, 6], [False, True], []]), [None, 6])
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| nonzero target | [1, 2, 4] | [1, 2, 4] | Passed |
| masked value | [1, 2] | [1, 2] | Passed |
| masked null | [1, 2] | [1, 2] | Passed |
| selected null | [1, None] | [1, None] | Passed |
| resurrect null | [1, 3] | [1, 3] | Passed |
| repeated target | [1, 4] | [1, 4] | Passed |
| middle validity | [1, None, 3] | [1, None, 3] | Passed |
| no writes | [None, 2] | [None, 2] | Passed |
SHA-256 / 58d89775778376c4728d77c82220a12fdefeca7ebe2c48462ce1da7ccd6be963
Verification & scope
Offline stipulated semantics over valid small inputs; no performance, concurrency, or production-engine conformance claim. 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:44:18.937174+00:00.
Case digest / a396b3fef8c937bca9421cabb7a40bc4f6610f578cc3d46218a4228d22ae96f8