{"abstract":"A sliding cache read moves the deadline even when the entry has already expired.","category":"Caching","checks":5,"contract":"For a physical hit strictly before exclusive expiration, set deadline to now plus nonnegative TTL. Misses and already expired records preserve their old deadline; this operation only computes the deadline.","evaluation_group":"xc-sliding-expiry-touch","failed_approach":"Adding TTL to the old deadline accumulates time independent of actual access.","family":"xc-sliding-expiry-touch","id":"FA-10516","implementations":{"attempt":{"sha256":"49cfdf3494387a36a35e4ee75fe8393b76679d806df259bfca821404b9851a13","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(expires, now, ttl, hit):\n    return expires+ttl if hit and now<expires else expires\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*(10, 11, 5, True)), 10)\ncheck('fixture 2', solve(*(10, 8, 5, True)), 13)\ncheck('fixture 3', solve(*(10, 8, 5, False)), 10)\ncheck('fixture 4', solve(*(10, 10, 5, True)), 10)\ncheck('fixture 5', solve(*(10, 8, 0, True)), 8)\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":"b5a555ffc8fa7d09a634ed7d147c0dfdc48ec5a64705d3236ebb13ca54a16f0f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(expires, now, ttl, hit):\n    return now+ttl if hit else expires\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*(10, 11, 5, True)), 10)\ncheck('fixture 2', solve(*(10, 8, 5, True)), 13)\ncheck('fixture 3', solve(*(10, 8, 5, False)), 10)\ncheck('fixture 4', solve(*(10, 10, 5, True)), 10)\ncheck('fixture 5', solve(*(10, 8, 0, True)), 8)\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"},"fixed":{"sha256":"d2367205b8ef3d21ecd37d624ada59a3e8332576d57cd6f0dd08d1fa2a770658","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(expires, now, ttl, hit):\n    return now+ttl if hit and now<expires else expires\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*(10, 11, 5, True)), 10)\ncheck('fixture 2', solve(*(10, 8, 5, True)), 13)\ncheck('fixture 3', solve(*(10, 8, 5, False)), 10)\ncheck('fixture 4', solve(*(10, 10, 5, True)), 10)\ncheck('fixture 5', solve(*(10, 8, 0, True)), 8)\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":"xc-sliding-expiry-touch","generated_at":"2026-09-29T14:38:39.746889+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic cache state transformation. Inputs are copied or treated as immutable; no remote storage, real clock, or concurrent interleaving is simulated.","repair":"Preserve the cache-state invariant: For a physical hit strictly before exclusive expiration, set deadline to now plus nonnegative TTL. Misses and already expired records preserve their old deadline; this operation only computes the deadline.","root_cause":"A stale physical record is extended after its logical lifetime has ended.","sha256":"4c8158608ebaad42b5c1a6a4ed1223f8ab3079f18f3631de4568df0d389c711b","title":"A sliding cache read moves the deadline even when the entry has already expired · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.356,"exit_code":1,"observations":[{"actual":10,"check":"fixture 1","expected":10,"passed":true},{"actual":15,"check":"fixture 2","expected":13,"passed":false},{"actual":10,"check":"fixture 3","expected":10,"passed":true},{"actual":10,"check":"fixture 4","expected":10,"passed":true},{"actual":10,"check":"fixture 5","expected":8,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": 15, \"expected\": 13, \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": 10, \"expected\": 8, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.571,"exit_code":1,"observations":[{"actual":16,"check":"fixture 1","expected":10,"passed":false},{"actual":13,"check":"fixture 2","expected":13,"passed":true},{"actual":10,"check":"fixture 3","expected":10,"passed":true},{"actual":15,"check":"fixture 4","expected":10,"passed":false},{"actual":8,"check":"fixture 5","expected":8,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": 16, \"expected\": 10, \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": 13, \"expected\": 13, \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": 15, \"expected\": 10, \"passed\": false}, {\"check\": \"fixture 5\", \"actual\": 8, \"expected\": 8, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.194,"exit_code":0,"observations":[{"actual":10,"check":"fixture 1","expected":10,"passed":true},{"actual":13,"check":"fixture 2","expected":13,"passed":true},{"actual":10,"check":"fixture 3","expected":10,"passed":true},{"actual":10,"check":"fixture 4","expected":10,"passed":true},{"actual":8,"check":"fixture 5","expected":8,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": 13, \"expected\": 13, \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": 10, \"expected\": 10, \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": 8, \"expected\": 8, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}