{"abstract":"Sparse holes disappear when file bytes are reconstructed.","category":"Filesystem semantics","checks":6,"contract":"Deterministic in-memory filesystem model. Logical file has nonnegative size and a map from allocated integer offsets to byte values 0..255. Return all logical bytes as a list; offsets outside size are ignored.","evaluation_group":"model-519929d6bc3b8363","failed_approach":"Padding at the end preserves size but moves bytes that follow internal holes.","family":"z-filesystems-sparse-hole","id":"FA-11571","implementations":{"attempt":{"sha256":"e7f0534a9a3084e192c127c53c70974301f1f98335cab1da2849827c877d0021","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(size, cells):\n    values=[cells[p] for p in sorted(cells) if 0<=p<size]\n    return values+[0]*(size-len(values))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('leading hole',solve(N+1,{N:65}),[0]*N+[65])\ncheck('internal hole',solve(3,{0:65,2:66}),[65,0,66])\ncheck('trailing hole',solve(3,{0:65}),[65,0,0])\ncheck('all hole',solve(N,{}),[0]*N)\ncheck('empty file',solve(0,{0:65}),[])\ncheck('allocated zero retained',solve(2,{0:0,1:66}),[0,66])\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":"ec0ee2fc6de107c6b7c4b345b12ce985b4f2ee1e065312fe523756c8c18c8b8a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(size, cells):\n    return [cells[p] for p in sorted(cells) if 0<=p<size]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('leading hole',solve(N+1,{N:65}),[0]*N+[65])\ncheck('internal hole',solve(3,{0:65,2:66}),[65,0,66])\ncheck('trailing hole',solve(3,{0:65}),[65,0,0])\ncheck('all hole',solve(N,{}),[0]*N)\ncheck('empty file',solve(0,{0:65}),[])\ncheck('allocated zero retained',solve(2,{0:0,1:66}),[0,66])\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":"d872122492a43c8a1899b47c7189de38c10b263915bff3f082db255e98332e8f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(size, cells):\n    return [cells.get(p,0) for p in range(size)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('leading hole',solve(N+1,{N:65}),[0]*N+[65])\ncheck('internal hole',solve(3,{0:65,2:66}),[65,0,66])\ncheck('trailing hole',solve(3,{0:65}),[65,0,0])\ncheck('all hole',solve(N,{}),[0]*N)\ncheck('empty file',solve(0,{0:65}),[])\ncheck('allocated zero retained',solve(2,{0:0,1:66}),[0,66])\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":"z-filesystems-sparse-hole","generated_at":"2026-09-29T14:38:49.125405+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline semantic experiment for file API clients; it models only the stated operations, not a complete operating system.","repair":"Read each logical position and substitute a zero byte for unallocated cells.","root_cause":"Only allocated cells are concatenated, collapsing logical offsets.","sha256":"1c5440ca3ba32aeaa061184d93181b2573b8f84a5ae882d49383a52b998db0a2","title":"Sparse holes disappear when file bytes are reconstructed · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":37.824,"exit_code":1,"observations":[{"actual":[65,0],"check":"leading hole","expected":[0,65],"passed":false},{"actual":[65,66,0],"check":"internal hole","expected":[65,0,66],"passed":false},{"actual":[65,0,0],"check":"trailing hole","expected":[65,0,0],"passed":true},{"actual":[0],"check":"all hole","expected":[0],"passed":true},{"actual":[],"check":"empty file","expected":[],"passed":true},{"actual":[0,66],"check":"allocated zero retained","expected":[0,66],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"leading hole\", \"actual\": [65, 0], \"expected\": [0, 65], \"passed\": false}, {\"check\": \"internal hole\", \"actual\": [65, 66, 0], \"expected\": [65, 0, 66], \"passed\": false}, {\"check\": \"trailing hole\", \"actual\": [65, 0, 0], \"expected\": [65, 0, 0], \"passed\": true}, {\"check\": \"all hole\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"empty file\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"allocated zero retained\", \"actual\": [0, 66], \"expected\": [0, 66], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.156,"exit_code":1,"observations":[{"actual":[65],"check":"leading hole","expected":[0,65],"passed":false},{"actual":[65,66],"check":"internal hole","expected":[65,0,66],"passed":false},{"actual":[65],"check":"trailing hole","expected":[65,0,0],"passed":false},{"actual":[],"check":"all hole","expected":[0],"passed":false},{"actual":[],"check":"empty file","expected":[],"passed":true},{"actual":[0,66],"check":"allocated zero retained","expected":[0,66],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"leading hole\", \"actual\": [65], \"expected\": [0, 65], \"passed\": false}, {\"check\": \"internal hole\", \"actual\": [65, 66], \"expected\": [65, 0, 66], \"passed\": false}, {\"check\": \"trailing hole\", \"actual\": [65], \"expected\": [65, 0, 0], \"passed\": false}, {\"check\": \"all hole\", \"actual\": [], \"expected\": [0], \"passed\": false}, {\"check\": \"empty file\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"allocated zero retained\", \"actual\": [0, 66], \"expected\": [0, 66], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.315,"exit_code":0,"observations":[{"actual":[0,65],"check":"leading hole","expected":[0,65],"passed":true},{"actual":[65,0,66],"check":"internal hole","expected":[65,0,66],"passed":true},{"actual":[65,0,0],"check":"trailing hole","expected":[65,0,0],"passed":true},{"actual":[0],"check":"all hole","expected":[0],"passed":true},{"actual":[],"check":"empty file","expected":[],"passed":true},{"actual":[0,66],"check":"allocated zero retained","expected":[0,66],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"leading hole\", \"actual\": [0, 65], \"expected\": [0, 65], \"passed\": true}, {\"check\": \"internal hole\", \"actual\": [65, 0, 66], \"expected\": [65, 0, 66], \"passed\": true}, {\"check\": \"trailing hole\", \"actual\": [65, 0, 0], \"expected\": [65, 0, 0], \"passed\": true}, {\"check\": \"all hole\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"empty file\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"allocated zero retained\", \"actual\": [0, 66], \"expected\": [0, 66], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}