{"abstract":"A task sleeps a full period after finishing, or the attempted correction schedules overlapping callbacks.","category":"Runtime and resources","checks":7,"contract":"Period is a positive integer, start and durations are nonnegative integers. The first callback starts at start. Later starts are the earliest start+k*period >= preceding completion and strictly greater than preceding start. Missed slots are skipped, not caught up. Return one start per duration.","contract_signature":"period, start, durations","evaluation_group":"model-2a2b3ca45d27ab3f","failed_approach":"Incrementing by exactly one period preserves phase but ignores missed deadlines after an overrun.","family":"runtime-periodic-release-phase","id":"FA-276","implementations":{"attempt":{"sha256":"37f47245ca578d2ca39323b4c4f17d14fcbae07652801a422f0f1ea7d594d17c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(period, start, durations):\n    return [start+i*period for i in range(len(durations))]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('short callbacks do not accumulate drift', solve(10*N, 0, [N]*3), [0, 10*N, 20*N])\ncheck('overrun skips expired slots', solve(10*N, 0, [25*N, N, N]), [0, 30*N, 40*N])\ncheck('completion exactly on deadline', solve(10*N, 0, [10*N, N]), [0, 10*N])\ncheck('zero-duration still waits a period', solve(N, 0, [0, 0, 0]), [0, N, 2*N])\ncheck('nonzero initial phase preserved', solve(10*N, 3*N, [25*N, N, N]), [3*N, 33*N, 43*N])\ncheck('no callbacks', solve(N, N, []), [])\ncheck('single callback uses initial start', solve(N, 7*N, [100*N]), [7*N])\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":"a63c369fb4af8e8aa2d2eba1aa0d231a174bbb31efa58fd76cb3037c64cad6c9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(period, start, durations):\n    times, current = [], start\n    for duration in durations:\n        times.append(current)\n        current += duration+period\n    return times\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('short callbacks do not accumulate drift', solve(10*N, 0, [N]*3), [0, 10*N, 20*N])\ncheck('overrun skips expired slots', solve(10*N, 0, [25*N, N, N]), [0, 30*N, 40*N])\ncheck('completion exactly on deadline', solve(10*N, 0, [10*N, N]), [0, 10*N])\ncheck('zero-duration still waits a period', solve(N, 0, [0, 0, 0]), [0, N, 2*N])\ncheck('nonzero initial phase preserved', solve(10*N, 3*N, [25*N, N, N]), [3*N, 33*N, 43*N])\ncheck('no callbacks', solve(N, N, []), [])\ncheck('single callback uses initial start', solve(N, 7*N, [100*N]), [7*N])\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":" 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":"runtime-periodic-release-phase","generated_at":"2026-09-29T14:36:51.597394+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Models a fixed-phase periodic scheduler with nonoverlapping callbacks; it separates arithmetic policy from OS scheduling, clock drift, and real-time execution guarantees.","root_cause":"Release times are derived from completion without preserving the original phase and nonoverlap policy.","sha256":"c698099eda597a6c02e30a4da45b140f2c22624379b4bd3cb055f41a3bd74566","title":"Callback duration accumulates into periodic task drift · 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":34.127,"exit_code":1,"observations":[{"actual":[0,10,20],"check":"short callbacks do not accumulate drift","expected":[0,10,20],"passed":true},{"actual":[0,10,20],"check":"overrun skips expired slots","expected":[0,30,40],"passed":false},{"actual":[0,10],"check":"completion exactly on deadline","expected":[0,10],"passed":true},{"actual":[0,1,2],"check":"zero-duration still waits a period","expected":[0,1,2],"passed":true},{"actual":[3,13,23],"check":"nonzero initial phase preserved","expected":[3,33,43],"passed":false},{"actual":[],"check":"no callbacks","expected":[],"passed":true},{"actual":[7],"check":"single callback uses initial start","expected":[7],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"short callbacks do not accumulate drift\", \"actual\": [0, 10, 20], \"expected\": [0, 10, 20], \"passed\": true}, {\"check\": \"overrun skips expired slots\", \"actual\": [0, 10, 20], \"expected\": [0, 30, 40], \"passed\": false}, {\"check\": \"completion exactly on deadline\", \"actual\": [0, 10], \"expected\": [0, 10], \"passed\": true}, {\"check\": \"zero-duration still waits a period\", \"actual\": [0, 1, 2], \"expected\": [0, 1, 2], \"passed\": true}, {\"check\": \"nonzero initial phase preserved\", \"actual\": [3, 13, 23], \"expected\": [3, 33, 43], \"passed\": false}, {\"check\": \"no callbacks\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"single callback uses initial start\", \"actual\": [7], \"expected\": [7], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":36.303,"exit_code":1,"observations":[{"actual":[0,11,22],"check":"short callbacks do not accumulate drift","expected":[0,10,20],"passed":false},{"actual":[0,35,46],"check":"overrun skips expired slots","expected":[0,30,40],"passed":false},{"actual":[0,20],"check":"completion exactly on deadline","expected":[0,10],"passed":false},{"actual":[0,1,2],"check":"zero-duration still waits a period","expected":[0,1,2],"passed":true},{"actual":[3,38,49],"check":"nonzero initial phase preserved","expected":[3,33,43],"passed":false},{"actual":[],"check":"no callbacks","expected":[],"passed":true},{"actual":[7],"check":"single callback uses initial start","expected":[7],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"short callbacks do not accumulate drift\", \"actual\": [0, 11, 22], \"expected\": [0, 10, 20], \"passed\": false}, {\"check\": \"overrun skips expired slots\", \"actual\": [0, 35, 46], \"expected\": [0, 30, 40], \"passed\": false}, {\"check\": \"completion exactly on deadline\", \"actual\": [0, 20], \"expected\": [0, 10], \"passed\": false}, {\"check\": \"zero-duration still waits a period\", \"actual\": [0, 1, 2], \"expected\": [0, 1, 2], \"passed\": true}, {\"check\": \"nonzero initial phase preserved\", \"actual\": [3, 38, 49], \"expected\": [3, 33, 43], \"passed\": false}, {\"check\": \"no callbacks\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"single callback uses initial start\", \"actual\": [7], \"expected\": [7], \"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."}}