{"abstract":"A garbage-collected revision is selected.","category":"Deployment models","checks":10,"contract":"Choose the highest earlier revision that is successful, retained, compatible with current schema, and different from the active revision. Return None when no rollback target exists.","contract_signature":"revisions, active, schema","evaluation_group":"xt-rollback-choice","failed_approach":"The attempted repair substitutes not r['retained']. Fixture 6 still yields 4 instead of 2.","family":"xt-rollback-choice-retained-artifact","id":"FA-10166","implementations":{"attempt":{"sha256":"98e3079cf0efa41e189c7ea327b3eeb6f88ef75322be22a3d4b81d6c00ab46ad","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(revisions, active, schema):\n    candidates = [r for r in revisions if r['number'] < active]\n    candidates = [r for r in candidates if r['success']]\n    candidates = [r for r in candidates if not r['retained']]\n    candidates = [r for r in candidates if schema in r['schemas']]\n    return max((r['number'] for r in candidates), default=None)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve([], 6, 1), None)\ncheck('fixture 2', solve([], 7, 1), None)\ncheck('fixture 3', solve([], 3, 1), None)\ncheck('fixture 4', solve([], 6, 2), None)\ncheck('fixture 5', solve([], 1, 1), None)\ncheck('fixture 6', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 6, 1), 2)\ncheck('fixture 7', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 7, 1), 6)\ncheck('fixture 8', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 3, 1), 2)\ncheck('fixture 9', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 6, 2), 5)\ncheck('fixture 10', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 1, 1), None)\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":"968885cdf60315b055667bdb820a304aecd763efb8432ca53cad916379d62e8e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(revisions, active, schema):\n    candidates = [r for r in revisions if r['number'] < active]\n    candidates = [r for r in candidates if r['success']]\n    candidates = [r for r in candidates if True]\n    candidates = [r for r in candidates if schema in r['schemas']]\n    return max((r['number'] for r in candidates), default=None)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve([], 6, 1), None)\ncheck('fixture 2', solve([], 7, 1), None)\ncheck('fixture 3', solve([], 3, 1), None)\ncheck('fixture 4', solve([], 6, 2), None)\ncheck('fixture 5', solve([], 1, 1), None)\ncheck('fixture 6', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 6, 1), 2)\ncheck('fixture 7', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 7, 1), 6)\ncheck('fixture 8', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 3, 1), 2)\ncheck('fixture 9', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 6, 2), 5)\ncheck('fixture 10', solve([{'number': 1, 'success': True, 'retained': True, 'schemas': [1, 2]}, {'number': 2, 'success': True, 'retained': True, 'schemas': [1]}, {'number': 3, 'success': False, 'retained': True, 'schemas': [1]}, {'number': 4, 'success': True, 'retained': False, 'schemas': [1]}, {'number': 5, 'success': True, 'retained': True, 'schemas': [2]}, {'number': 6, 'success': True, 'retained': True, 'schemas': [1]}], 1, 1), None)\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":"xt-rollback-choice-retained-artifact","generated_at":"2026-09-29T14:38:36.628745+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline model of rollback revision selection, suitable for testing build and release tooling without external services.","root_cause":"The implementation substitutes True for r['retained'], so a garbage-collected revision is selected.","sha256":"cef7cb107366c4d7ec1b59ad1c3fb57f801b208b281bb82be792e706a22389a3","title":"Rollback revision selection: A garbage-collected revision is selected · 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":41.853,"exit_code":1,"observations":[{"actual":null,"check":"fixture 1","expected":null,"passed":true},{"actual":null,"check":"fixture 2","expected":null,"passed":true},{"actual":null,"check":"fixture 3","expected":null,"passed":true},{"actual":null,"check":"fixture 4","expected":null,"passed":true},{"actual":null,"check":"fixture 5","expected":null,"passed":true},{"actual":4,"check":"fixture 6","expected":2,"passed":false},{"actual":4,"check":"fixture 7","expected":6,"passed":false},{"actual":null,"check":"fixture 8","expected":2,"passed":false},{"actual":null,"check":"fixture 9","expected":5,"passed":false},{"actual":null,"check":"fixture 10","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 6\", \"actual\": 4, \"expected\": 2, \"passed\": false}, {\"check\": \"fixture 7\", \"actual\": 4, \"expected\": 6, \"passed\": false}, {\"check\": \"fixture 8\", \"actual\": null, \"expected\": 2, \"passed\": false}, {\"check\": \"fixture 9\", \"actual\": null, \"expected\": 5, \"passed\": false}, {\"check\": \"fixture 10\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.14,"exit_code":1,"observations":[{"actual":null,"check":"fixture 1","expected":null,"passed":true},{"actual":null,"check":"fixture 2","expected":null,"passed":true},{"actual":null,"check":"fixture 3","expected":null,"passed":true},{"actual":null,"check":"fixture 4","expected":null,"passed":true},{"actual":null,"check":"fixture 5","expected":null,"passed":true},{"actual":4,"check":"fixture 6","expected":2,"passed":false},{"actual":6,"check":"fixture 7","expected":6,"passed":true},{"actual":2,"check":"fixture 8","expected":2,"passed":true},{"actual":5,"check":"fixture 9","expected":5,"passed":true},{"actual":null,"check":"fixture 10","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"fixture 6\", \"actual\": 4, \"expected\": 2, \"passed\": false}, {\"check\": \"fixture 7\", \"actual\": 6, \"expected\": 6, \"passed\": true}, {\"check\": \"fixture 8\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"fixture 9\", \"actual\": 5, \"expected\": 5, \"passed\": true}, {\"check\": \"fixture 10\", \"actual\": null, \"expected\": null, \"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."}}