{"abstract":"Late events are reinserted into the pending buffer.","category":"Data systems","checks":7,"contract":"Process event actions [event,time,id] and watermark actions [watermark,time,None]. Maintain monotone watermark; events older than it go to late output. On a watermark, release buffered events with time strictly below watermark ordered by (time,id). Return [emitted,late,sorted-pending].","contract_signature":"d","evaluation_group":"s3-data-systems-watermark-buffer-release","failed_approach":"Direct normal emission loses the separate late-data contract.","family":"s3-data-systems-watermark-buffer-release-late-routing","id":"FA-45686","implementations":{"attempt":{"sha256":"85ce6904c83e86017b792e92833f1a7e0a96b043289d7716344be49a6d6282f5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        watermark=None; pending=[]; emitted=[]; late=[]\n        for kind,time,ident in d:\n            if kind=='event':\n                if watermark is not None and time<watermark: emitted.append([time,ident])\n                else: pending.append([time,ident])\n            else:\n                watermark=time if watermark is None else max(watermark,time)\n                ready=sorted(e for e in pending if e[0]<watermark)\n                emitted.extend(ready)\n                pending=[e for e in pending if e[0]>=watermark]\n        return [emitted,late,sorted(pending)]\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('frontier equality', solve([['watermark', 1, None], ['event', 1, 10]]), [[], [], [[1, 10]]])\n    check('regression', solve([['watermark', 4, None], ['watermark', 1, None], ['event', 2, 10]]), [[], [[2, 10]], []])\n    check('frontier stays pending', solve([['event', 1, 10], ['watermark', 1, None]]), [[], [], [[1, 10]]])\n    check('event time ordering', solve([['event', 3, 10], ['event', 1, 11], ['watermark', 4, None]]), [[[1, 11], [3, 10]], [], []])\n    check('emit once', solve([['event', 1, 10], ['watermark', 2, None], ['watermark', 3, None]]), [[[1, 10]], [], []])\n    check('late row', solve([['watermark', 3, None], ['event', 1, 10]]), [[], [[1, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nelif N == 2:\n    check('frontier equality', solve([['watermark', 2, None], ['event', 2, 10]]), [[], [], [[2, 10]]])\n    check('regression', solve([['watermark', 5, None], ['watermark', 2, None], ['event', 3, 10]]), [[], [[3, 10]], []])\n    check('frontier stays pending', solve([['event', 2, 10], ['watermark', 2, None]]), [[], [], [[2, 10]]])\n    check('event time ordering', solve([['event', 4, 10], ['event', 2, 11], ['watermark', 5, None]]), [[[2, 11], [4, 10]], [], []])\n    check('emit once', solve([['event', 2, 10], ['watermark', 3, None], ['watermark', 4, None]]), [[[2, 10]], [], []])\n    check('late row', solve([['watermark', 4, None], ['event', 2, 10]]), [[], [[2, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nelif N == 3:\n    check('frontier equality', solve([['watermark', 3, None], ['event', 3, 10]]), [[], [], [[3, 10]]])\n    check('regression', solve([['watermark', 6, None], ['watermark', 3, None], ['event', 4, 10]]), [[], [[4, 10]], []])\n    check('frontier stays pending', solve([['event', 3, 10], ['watermark', 3, None]]), [[], [], [[3, 10]]])\n    check('event time ordering', solve([['event', 5, 10], ['event', 3, 11], ['watermark', 6, None]]), [[[3, 11], [5, 10]], [], []])\n    check('emit once', solve([['event', 3, 10], ['watermark', 4, None], ['watermark', 5, None]]), [[[3, 10]], [], []])\n    check('late row', solve([['watermark', 5, None], ['event', 3, 10]]), [[], [[3, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nelif N == 4:\n    check('frontier equality', solve([['watermark', 4, None], ['event', 4, 10]]), [[], [], [[4, 10]]])\n    check('regression', solve([['watermark', 7, None], ['watermark', 4, None], ['event', 5, 10]]), [[], [[5, 10]], []])\n    check('frontier stays pending', solve([['event', 4, 10], ['watermark', 4, None]]), [[], [], [[4, 10]]])\n    check('event time ordering', solve([['event', 6, 10], ['event', 4, 11], ['watermark', 7, None]]), [[[4, 11], [6, 10]], [], []])\n    check('emit once', solve([['event', 4, 10], ['watermark', 5, None], ['watermark', 6, None]]), [[[4, 10]], [], []])\n    check('late row', solve([['watermark', 6, None], ['event', 4, 10]]), [[], [[4, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nelif N == 5:\n    check('frontier equality', solve([['watermark', 5, None], ['event', 5, 10]]), [[], [], [[5, 10]]])\n    check('regression', solve([['watermark', 8, None], ['watermark', 5, None], ['event', 6, 10]]), [[], [[6, 10]], []])\n    check('frontier stays pending', solve([['event', 5, 10], ['watermark', 5, None]]), [[], [], [[5, 10]]])\n    check('event time ordering', solve([['event', 7, 10], ['event', 5, 11], ['watermark', 8, None]]), [[[5, 11], [7, 10]], [], []])\n    check('emit once', solve([['event', 5, 10], ['watermark', 6, None], ['watermark', 7, None]]), [[[5, 10]], [], []])\n    check('late row', solve([['watermark', 7, None], ['event', 5, 10]]), [[], [[5, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"bafbab5c6fe277d23f358f86276f2e6b4225208cd90c904838570e02786340a7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        watermark=None; pending=[]; emitted=[]; late=[]\n        for kind,time,ident in d:\n            if kind=='event':\n                if watermark is not None and time<watermark: pending.append([time,ident])\n                else: pending.append([time,ident])\n            else:\n                watermark=time if watermark is None else max(watermark,time)\n                ready=sorted(e for e in pending if e[0]<watermark)\n                emitted.extend(ready)\n                pending=[e for e in pending if e[0]>=watermark]\n        return [emitted,late,sorted(pending)]\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('frontier equality', solve([['watermark', 1, None], ['event', 1, 10]]), [[], [], [[1, 10]]])\n    check('regression', solve([['watermark', 4, None], ['watermark', 1, None], ['event', 2, 10]]), [[], [[2, 10]], []])\n    check('frontier stays pending', solve([['event', 1, 10], ['watermark', 1, None]]), [[], [], [[1, 10]]])\n    check('event time ordering', solve([['event', 3, 10], ['event', 1, 11], ['watermark', 4, None]]), [[[1, 11], [3, 10]], [], []])\n    check('emit once', solve([['event', 1, 10], ['watermark', 2, None], ['watermark', 3, None]]), [[[1, 10]], [], []])\n    check('late row', solve([['watermark', 3, None], ['event', 1, 10]]), [[], [[1, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nelif N == 2:\n    check('frontier equality', solve([['watermark', 2, None], ['event', 2, 10]]), [[], [], [[2, 10]]])\n    check('regression', solve([['watermark', 5, None], ['watermark', 2, None], ['event', 3, 10]]), [[], [[3, 10]], []])\n    check('frontier stays pending', solve([['event', 2, 10], ['watermark', 2, None]]), [[], [], [[2, 10]]])\n    check('event time ordering', solve([['event', 4, 10], ['event', 2, 11], ['watermark', 5, None]]), [[[2, 11], [4, 10]], [], []])\n    check('emit once', solve([['event', 2, 10], ['watermark', 3, None], ['watermark', 4, None]]), [[[2, 10]], [], []])\n    check('late row', solve([['watermark', 4, None], ['event', 2, 10]]), [[], [[2, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nelif N == 3:\n    check('frontier equality', solve([['watermark', 3, None], ['event', 3, 10]]), [[], [], [[3, 10]]])\n    check('regression', solve([['watermark', 6, None], ['watermark', 3, None], ['event', 4, 10]]), [[], [[4, 10]], []])\n    check('frontier stays pending', solve([['event', 3, 10], ['watermark', 3, None]]), [[], [], [[3, 10]]])\n    check('event time ordering', solve([['event', 5, 10], ['event', 3, 11], ['watermark', 6, None]]), [[[3, 11], [5, 10]], [], []])\n    check('emit once', solve([['event', 3, 10], ['watermark', 4, None], ['watermark', 5, None]]), [[[3, 10]], [], []])\n    check('late row', solve([['watermark', 5, None], ['event', 3, 10]]), [[], [[3, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nelif N == 4:\n    check('frontier equality', solve([['watermark', 4, None], ['event', 4, 10]]), [[], [], [[4, 10]]])\n    check('regression', solve([['watermark', 7, None], ['watermark', 4, None], ['event', 5, 10]]), [[], [[5, 10]], []])\n    check('frontier stays pending', solve([['event', 4, 10], ['watermark', 4, None]]), [[], [], [[4, 10]]])\n    check('event time ordering', solve([['event', 6, 10], ['event', 4, 11], ['watermark', 7, None]]), [[[4, 11], [6, 10]], [], []])\n    check('emit once', solve([['event', 4, 10], ['watermark', 5, None], ['watermark', 6, None]]), [[[4, 10]], [], []])\n    check('late row', solve([['watermark', 6, None], ['event', 4, 10]]), [[], [[4, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nelif N == 5:\n    check('frontier equality', solve([['watermark', 5, None], ['event', 5, 10]]), [[], [], [[5, 10]]])\n    check('regression', solve([['watermark', 8, None], ['watermark', 5, None], ['event', 6, 10]]), [[], [[6, 10]], []])\n    check('frontier stays pending', solve([['event', 5, 10], ['watermark', 5, None]]), [[], [], [[5, 10]]])\n    check('event time ordering', solve([['event', 7, 10], ['event', 5, 11], ['watermark', 8, None]]), [[[5, 11], [7, 10]], [], []])\n    check('emit once', solve([['event', 5, 10], ['watermark', 6, None], ['watermark', 7, None]]), [[[5, 10]], [], []])\n    check('late row', solve([['watermark', 7, None], ['event', 5, 10]]), [[], [[5, 10]], []])\n    check('empty input', solve([]), [[], [], []])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-data-systems-watermark-buffer-release-late-routing","generated_at":"2026-09-29T14:44:24.757350+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A bounded deterministic data engine model makes representation and changelog faults reproducible.","root_cause":"watermark-buffer-release: Late events are reinserted into the pending buffer.","sha256":"fd9793febe70d1ed8a68b155d61648eb5ae670c86db99f8c09e95c9082a69ac0","title":"Late events are reinserted into the pending buffer · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.505,"exit_code":1,"observations":[{"actual":[[],[],[[1,10]]],"check":"frontier equality","expected":[[],[],[[1,10]]],"passed":true},{"actual":[[[2,10]],[],[]],"check":"regression","expected":[[],[[2,10]],[]],"passed":false},{"actual":[[],[],[[1,10]]],"check":"frontier stays pending","expected":[[],[],[[1,10]]],"passed":true},{"actual":[[[1,11],[3,10]],[],[]],"check":"event time ordering","expected":[[[1,11],[3,10]],[],[]],"passed":true},{"actual":[[[1,10]],[],[]],"check":"emit once","expected":[[[1,10]],[],[]],"passed":true},{"actual":[[[1,10]],[],[]],"check":"late row","expected":[[],[[1,10]],[]],"passed":false},{"actual":[[],[],[]],"check":"empty input","expected":[[],[],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"frontier equality\", \"actual\": [[], [], [[1, 10]]], \"expected\": [[], [], [[1, 10]]], \"passed\": true}, {\"check\": \"regression\", \"actual\": [[[2, 10]], [], []], \"expected\": [[], [[2, 10]], []], \"passed\": false}, {\"check\": \"frontier stays pending\", \"actual\": [[], [], [[1, 10]]], \"expected\": [[], [], [[1, 10]]], \"passed\": true}, {\"check\": \"event time ordering\", \"actual\": [[[1, 11], [3, 10]], [], []], \"expected\": [[[1, 11], [3, 10]], [], []], \"passed\": true}, {\"check\": \"emit once\", \"actual\": [[[1, 10]], [], []], \"expected\": [[[1, 10]], [], []], \"passed\": true}, {\"check\": \"late row\", \"actual\": [[[1, 10]], [], []], \"expected\": [[], [[1, 10]], []], \"passed\": false}, {\"check\": \"empty input\", \"actual\": [[], [], []], \"expected\": [[], [], []], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.885,"exit_code":1,"observations":[{"actual":[[],[],[[1,10]]],"check":"frontier equality","expected":[[],[],[[1,10]]],"passed":true},{"actual":[[],[],[[2,10]]],"check":"regression","expected":[[],[[2,10]],[]],"passed":false},{"actual":[[],[],[[1,10]]],"check":"frontier stays pending","expected":[[],[],[[1,10]]],"passed":true},{"actual":[[[1,11],[3,10]],[],[]],"check":"event time ordering","expected":[[[1,11],[3,10]],[],[]],"passed":true},{"actual":[[[1,10]],[],[]],"check":"emit once","expected":[[[1,10]],[],[]],"passed":true},{"actual":[[],[],[[1,10]]],"check":"late row","expected":[[],[[1,10]],[]],"passed":false},{"actual":[[],[],[]],"check":"empty input","expected":[[],[],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"frontier equality\", \"actual\": [[], [], [[1, 10]]], \"expected\": [[], [], [[1, 10]]], \"passed\": true}, {\"check\": \"regression\", \"actual\": [[], [], [[2, 10]]], \"expected\": [[], [[2, 10]], []], \"passed\": false}, {\"check\": \"frontier stays pending\", \"actual\": [[], [], [[1, 10]]], \"expected\": [[], [], [[1, 10]]], \"passed\": true}, {\"check\": \"event time ordering\", \"actual\": [[[1, 11], [3, 10]], [], []], \"expected\": [[[1, 11], [3, 10]], [], []], \"passed\": true}, {\"check\": \"emit once\", \"actual\": [[[1, 10]], [], []], \"expected\": [[[1, 10]], [], []], \"passed\": true}, {\"check\": \"late row\", \"actual\": [[], [], [[1, 10]]], \"expected\": [[], [[1, 10]], []], \"passed\": false}, {\"check\": \"empty input\", \"actual\": [[], [], []], \"expected\": [[], [], []], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}