{"abstract":"An origin adapter turns byte requests into bounded aligned storage reads: one request keeps all of its crossed block slices.","category":"HTTP ranges","checks":7,"contract":"x contains complete object length, positive storage block size, ordered [start,stop) requested spans already within object, and cached block numbers. Return [uncached-block-reads,request-to-block-slices]. Each storage read is [block,absolute-start,count], clipped at EOF. Request maps contain [block,offset,count] for every crossed block, including cached ones; empty spans map to an empty list. Storage reads are deduplicated and sorted by block.","evaluation_group":"s3-http_ranges-aligned-origin-read-plan","failed_approach":"The partial repair uses block=x['block']\nneeded=set()\nmaps=[]\nfor start,stop in x['requests']:\n    parts=[]\n    cursor=start\n    while cursor<stop:\n        page=cursor//block\n        local=cursor-page*block\n        count=min(stop-cursor,block-local)\n        parts.insert(0,[page,local,count])\n        needed.add(page)\n        cursor+=count\n    maps.append(parts)\nreads=[]\nfor page in sorted(needed):\n    if page in x['cached']: continue\n    absolute=page*block\n    count=min(block,x['length']-absolute)\n    reads.append([page,absolute,count])\nreturn [reads,maps], which still violates the stated contract.","family":"s3-http_ranges-aligned-origin-read-plan-request-map-append","id":"FA-27256","implementations":{"attempt":{"sha256":"8a3c34a111f240dffdb24abcd4f96ef82ba2a02c6f88af346940686d55a9c435","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    block=x['block']\n    needed=set()\n    maps=[]\n    for start,stop in x['requests']:\n        parts=[]\n        cursor=start\n        while cursor<stop:\n            page=cursor//block\n            local=cursor-page*block\n            count=min(stop-cursor,block-local)\n            parts.insert(0,[page,local,count])\n            needed.add(page)\n            cursor+=count\n        maps.append(parts)\n    reads=[]\n    for page in sorted(needed):\n        if page in x['cached']: continue\n        absolute=page*block\n        count=min(block,x['length']-absolute)\n        reads.append([page,absolute,count])\n    return [reads,maps]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('request-map-append fixture 0', json.loads(json.dumps(solve({'length':10,'block':4,'requests':[[3,9]],'cached':[]}))), json.loads(json.dumps([[[0,0,4],[1,4,4],[2,8,2]],[[[0,3,1],[1,0,4],[2,0,1]]]])))\ncheck('request-map-append fixture 1', json.loads(json.dumps(solve({'length':10,'block':4,'requests':[[8,10],[0,2],[1,3]],'cached':[0]}))), json.loads(json.dumps([[[2,8,2]],[[[2,0,2]],[[0,0,2]],[[0,1,2]]]])))\ncheck('request-map-append fixture 2', json.loads(json.dumps(solve({'length':8,'block':4,'requests':[[0,4],[4,8]],'cached':[]}))), json.loads(json.dumps([[[0,0,4],[1,4,4]],[[[0,0,4]],[[1,0,4]]]])))\ncheck('request-map-append fixture 3', json.loads(json.dumps(solve({'length':0,'block':4,'requests':[[0,0]],'cached':[]}))), json.loads(json.dumps([[],[[]]])))\ncheck('request-map-append fixture 4', json.loads(json.dumps(solve({'length':10,'block':4,'requests':[[2,2]],'cached':[]}))), json.loads(json.dumps([[],[[]]])))\ncheck('request-map-append fixture 5', json.loads(json.dumps(solve({'length':3*N,'block':N,'requests':[[0,N],[N,2*N]],'cached':[0]}))), json.loads(json.dumps([[[1,N,N]],[[[0,0,N]],[[1,0,N]]]])))\ncheck('request-map-append fixture 6', json.loads(json.dumps(solve({'length':5,'block':4,'requests':[],'cached':[0]}))), json.loads(json.dumps([[],[]])))\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":"52f8b7880d4c552c80b61eb36bc9cab455816868779123e0fa79836394941e4c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    block=x['block']\n    needed=set()\n    maps=[]\n    for start,stop in x['requests']:\n        parts=[]\n        cursor=start\n        while cursor<stop:\n            page=cursor//block\n            local=cursor-page*block\n            count=min(stop-cursor,block-local)\n            parts=[[page,local,count]]\n            needed.add(page)\n            cursor+=count\n        maps.append(parts)\n    reads=[]\n    for page in sorted(needed):\n        if page in x['cached']: continue\n        absolute=page*block\n        count=min(block,x['length']-absolute)\n        reads.append([page,absolute,count])\n    return [reads,maps]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('request-map-append fixture 0', json.loads(json.dumps(solve({'length':10,'block':4,'requests':[[3,9]],'cached':[]}))), json.loads(json.dumps([[[0,0,4],[1,4,4],[2,8,2]],[[[0,3,1],[1,0,4],[2,0,1]]]])))\ncheck('request-map-append fixture 1', json.loads(json.dumps(solve({'length':10,'block':4,'requests':[[8,10],[0,2],[1,3]],'cached':[0]}))), json.loads(json.dumps([[[2,8,2]],[[[2,0,2]],[[0,0,2]],[[0,1,2]]]])))\ncheck('request-map-append fixture 2', json.loads(json.dumps(solve({'length':8,'block':4,'requests':[[0,4],[4,8]],'cached':[]}))), json.loads(json.dumps([[[0,0,4],[1,4,4]],[[[0,0,4]],[[1,0,4]]]])))\ncheck('request-map-append fixture 3', json.loads(json.dumps(solve({'length':0,'block':4,'requests':[[0,0]],'cached':[]}))), json.loads(json.dumps([[],[[]]])))\ncheck('request-map-append fixture 4', json.loads(json.dumps(solve({'length':10,'block':4,'requests':[[2,2]],'cached':[]}))), json.loads(json.dumps([[],[[]]])))\ncheck('request-map-append fixture 5', json.loads(json.dumps(solve({'length':3*N,'block':N,'requests':[[0,N],[N,2*N]],'cached':[0]}))), json.loads(json.dumps([[[1,N,N]],[[[0,0,N]],[[1,0,N]]]])))\ncheck('request-map-append fixture 6', json.loads(json.dumps(solve({'length':5,'block':4,'requests':[],'cached':[0]}))), json.loads(json.dumps([[],[]])))\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":"05ce4e38a0a701d9719fb39eb3bc4c79b9af132596271c82f4e315eb857e7787","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    block=x['block']\n    needed=set()\n    maps=[]\n    for start,stop in x['requests']:\n        parts=[]\n        cursor=start\n        while cursor<stop:\n            page=cursor//block\n            local=cursor-page*block\n            count=min(stop-cursor,block-local)\n            parts.append([page,local,count])\n            needed.add(page)\n            cursor+=count\n        maps.append(parts)\n    reads=[]\n    for page in sorted(needed):\n        if page in x['cached']: continue\n        absolute=page*block\n        count=min(block,x['length']-absolute)\n        reads.append([page,absolute,count])\n    return [reads,maps]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('request-map-append fixture 0', json.loads(json.dumps(solve({'length':10,'block':4,'requests':[[3,9]],'cached':[]}))), json.loads(json.dumps([[[0,0,4],[1,4,4],[2,8,2]],[[[0,3,1],[1,0,4],[2,0,1]]]])))\ncheck('request-map-append fixture 1', json.loads(json.dumps(solve({'length':10,'block':4,'requests':[[8,10],[0,2],[1,3]],'cached':[0]}))), json.loads(json.dumps([[[2,8,2]],[[[2,0,2]],[[0,0,2]],[[0,1,2]]]])))\ncheck('request-map-append fixture 2', json.loads(json.dumps(solve({'length':8,'block':4,'requests':[[0,4],[4,8]],'cached':[]}))), json.loads(json.dumps([[[0,0,4],[1,4,4]],[[[0,0,4]],[[1,0,4]]]])))\ncheck('request-map-append fixture 3', json.loads(json.dumps(solve({'length':0,'block':4,'requests':[[0,0]],'cached':[]}))), json.loads(json.dumps([[],[[]]])))\ncheck('request-map-append fixture 4', json.loads(json.dumps(solve({'length':10,'block':4,'requests':[[2,2]],'cached':[]}))), json.loads(json.dumps([[],[[]]])))\ncheck('request-map-append fixture 5', json.loads(json.dumps(solve({'length':3*N,'block':N,'requests':[[0,N],[N,2*N]],'cached':[0]}))), json.loads(json.dumps([[[1,N,N]],[[[0,0,N]],[[1,0,N]]]])))\ncheck('request-map-append fixture 6', json.loads(json.dumps(solve({'length':5,'block':4,'requests':[],'cached':[0]}))), json.loads(json.dumps([[],[]])))\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":"Deterministic simplified range service, with stipulated local policies and already parsed trusted inputs; not a complete HTTP implementation. 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-http_ranges-aligned-origin-read-plan-request-map-append","generated_at":"2026-09-29T14:41:23.406457+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Range responses combine representation identity, conditional requests, framing, and partial-object state.","repair":"Apply the bounded decision exactly: block=x['block']\nneeded=set()\nmaps=[]\nfor start,stop in x['requests']:\n    parts=[]\n    cursor=start\n    while cursor<stop:\n        page=cursor//block\n        local=cursor-page*block\n        count=min(stop-cursor,block-local)\n        parts.append([page,local,count])\n        needed.add(page)\n        cursor+=count\n    maps.append(parts)\nreads=[]\nfor page in sorted(needed):\n    if page in x['cached']: continue\n    absolute=page*block\n    count=min(block,x['length']-absolute)\n    reads.append([page,absolute,count])\nreturn [reads,maps]","root_cause":"The aligned-origin-read-plan-request-map-append decision uses block=x['block']\nneeded=set()\nmaps=[]\nfor start,stop in x['requests']:\n    parts=[]\n    cursor=start\n    while cursor<stop:\n        page=cursor//block\n        local=cursor-page*block\n        count=min(stop-cursor,block-local)\n        parts=[[page,local,count]]\n        needed.add(page)\n        cursor+=count\n    maps.append(parts)\nreads=[]\nfor page in sorted(needed):\n    if page in x['cached']: continue\n    absolute=page*block\n    count=min(block,x['length']-absolute)\n    reads.append([page,absolute,count])\nreturn [reads,maps].","sha256":"cd869b41b1d7245036e50693521348980382560554b9159580a5e77f55581f0e","title":"An origin adapter turns byte requests into bounded aligned storage reads: one request keeps all of its crossed block slices · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.657,"exit_code":1,"observations":[{"actual":[[[0,0,4],[1,4,4],[2,8,2]],[[[2,0,1],[1,0,4],[0,3,1]]]],"check":"request-map-append fixture 0","expected":[[[0,0,4],[1,4,4],[2,8,2]],[[[0,3,1],[1,0,4],[2,0,1]]]],"passed":false},{"actual":[[[2,8,2]],[[[2,0,2]],[[0,0,2]],[[0,1,2]]]],"check":"request-map-append fixture 1","expected":[[[2,8,2]],[[[2,0,2]],[[0,0,2]],[[0,1,2]]]],"passed":true},{"actual":[[[0,0,4],[1,4,4]],[[[0,0,4]],[[1,0,4]]]],"check":"request-map-append fixture 2","expected":[[[0,0,4],[1,4,4]],[[[0,0,4]],[[1,0,4]]]],"passed":true},{"actual":[[],[[]]],"check":"request-map-append fixture 3","expected":[[],[[]]],"passed":true},{"actual":[[],[[]]],"check":"request-map-append fixture 4","expected":[[],[[]]],"passed":true},{"actual":[[[1,1,1]],[[[0,0,1]],[[1,0,1]]]],"check":"request-map-append fixture 5","expected":[[[1,1,1]],[[[0,0,1]],[[1,0,1]]]],"passed":true},{"actual":[[],[]],"check":"request-map-append fixture 6","expected":[[],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"request-map-append fixture 0\", \"actual\": [[[0, 0, 4], [1, 4, 4], [2, 8, 2]], [[[2, 0, 1], [1, 0, 4], [0, 3, 1]]]], \"expected\": [[[0, 0, 4], [1, 4, 4], [2, 8, 2]], [[[0, 3, 1], [1, 0, 4], [2, 0, 1]]]], \"passed\": false}, {\"check\": \"request-map-append fixture 1\", \"actual\": [[[2, 8, 2]], [[[2, 0, 2]], [[0, 0, 2]], [[0, 1, 2]]]], \"expected\": [[[2, 8, 2]], [[[2, 0, 2]], [[0, 0, 2]], [[0, 1, 2]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 2\", \"actual\": [[[0, 0, 4], [1, 4, 4]], [[[0, 0, 4]], [[1, 0, 4]]]], \"expected\": [[[0, 0, 4], [1, 4, 4]], [[[0, 0, 4]], [[1, 0, 4]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 3\", \"actual\": [[], [[]]], \"expected\": [[], [[]]], \"passed\": true}, {\"check\": \"request-map-append fixture 4\", \"actual\": [[], [[]]], \"expected\": [[], [[]]], \"passed\": true}, {\"check\": \"request-map-append fixture 5\", \"actual\": [[[1, 1, 1]], [[[0, 0, 1]], [[1, 0, 1]]]], \"expected\": [[[1, 1, 1]], [[[0, 0, 1]], [[1, 0, 1]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 6\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.534,"exit_code":1,"observations":[{"actual":[[[0,0,4],[1,4,4],[2,8,2]],[[[2,0,1]]]],"check":"request-map-append fixture 0","expected":[[[0,0,4],[1,4,4],[2,8,2]],[[[0,3,1],[1,0,4],[2,0,1]]]],"passed":false},{"actual":[[[2,8,2]],[[[2,0,2]],[[0,0,2]],[[0,1,2]]]],"check":"request-map-append fixture 1","expected":[[[2,8,2]],[[[2,0,2]],[[0,0,2]],[[0,1,2]]]],"passed":true},{"actual":[[[0,0,4],[1,4,4]],[[[0,0,4]],[[1,0,4]]]],"check":"request-map-append fixture 2","expected":[[[0,0,4],[1,4,4]],[[[0,0,4]],[[1,0,4]]]],"passed":true},{"actual":[[],[[]]],"check":"request-map-append fixture 3","expected":[[],[[]]],"passed":true},{"actual":[[],[[]]],"check":"request-map-append fixture 4","expected":[[],[[]]],"passed":true},{"actual":[[[1,1,1]],[[[0,0,1]],[[1,0,1]]]],"check":"request-map-append fixture 5","expected":[[[1,1,1]],[[[0,0,1]],[[1,0,1]]]],"passed":true},{"actual":[[],[]],"check":"request-map-append fixture 6","expected":[[],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"request-map-append fixture 0\", \"actual\": [[[0, 0, 4], [1, 4, 4], [2, 8, 2]], [[[2, 0, 1]]]], \"expected\": [[[0, 0, 4], [1, 4, 4], [2, 8, 2]], [[[0, 3, 1], [1, 0, 4], [2, 0, 1]]]], \"passed\": false}, {\"check\": \"request-map-append fixture 1\", \"actual\": [[[2, 8, 2]], [[[2, 0, 2]], [[0, 0, 2]], [[0, 1, 2]]]], \"expected\": [[[2, 8, 2]], [[[2, 0, 2]], [[0, 0, 2]], [[0, 1, 2]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 2\", \"actual\": [[[0, 0, 4], [1, 4, 4]], [[[0, 0, 4]], [[1, 0, 4]]]], \"expected\": [[[0, 0, 4], [1, 4, 4]], [[[0, 0, 4]], [[1, 0, 4]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 3\", \"actual\": [[], [[]]], \"expected\": [[], [[]]], \"passed\": true}, {\"check\": \"request-map-append fixture 4\", \"actual\": [[], [[]]], \"expected\": [[], [[]]], \"passed\": true}, {\"check\": \"request-map-append fixture 5\", \"actual\": [[[1, 1, 1]], [[[0, 0, 1]], [[1, 0, 1]]]], \"expected\": [[[1, 1, 1]], [[[0, 0, 1]], [[1, 0, 1]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 6\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.673,"exit_code":0,"observations":[{"actual":[[[0,0,4],[1,4,4],[2,8,2]],[[[0,3,1],[1,0,4],[2,0,1]]]],"check":"request-map-append fixture 0","expected":[[[0,0,4],[1,4,4],[2,8,2]],[[[0,3,1],[1,0,4],[2,0,1]]]],"passed":true},{"actual":[[[2,8,2]],[[[2,0,2]],[[0,0,2]],[[0,1,2]]]],"check":"request-map-append fixture 1","expected":[[[2,8,2]],[[[2,0,2]],[[0,0,2]],[[0,1,2]]]],"passed":true},{"actual":[[[0,0,4],[1,4,4]],[[[0,0,4]],[[1,0,4]]]],"check":"request-map-append fixture 2","expected":[[[0,0,4],[1,4,4]],[[[0,0,4]],[[1,0,4]]]],"passed":true},{"actual":[[],[[]]],"check":"request-map-append fixture 3","expected":[[],[[]]],"passed":true},{"actual":[[],[[]]],"check":"request-map-append fixture 4","expected":[[],[[]]],"passed":true},{"actual":[[[1,1,1]],[[[0,0,1]],[[1,0,1]]]],"check":"request-map-append fixture 5","expected":[[[1,1,1]],[[[0,0,1]],[[1,0,1]]]],"passed":true},{"actual":[[],[]],"check":"request-map-append fixture 6","expected":[[],[]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"request-map-append fixture 0\", \"actual\": [[[0, 0, 4], [1, 4, 4], [2, 8, 2]], [[[0, 3, 1], [1, 0, 4], [2, 0, 1]]]], \"expected\": [[[0, 0, 4], [1, 4, 4], [2, 8, 2]], [[[0, 3, 1], [1, 0, 4], [2, 0, 1]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 1\", \"actual\": [[[2, 8, 2]], [[[2, 0, 2]], [[0, 0, 2]], [[0, 1, 2]]]], \"expected\": [[[2, 8, 2]], [[[2, 0, 2]], [[0, 0, 2]], [[0, 1, 2]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 2\", \"actual\": [[[0, 0, 4], [1, 4, 4]], [[[0, 0, 4]], [[1, 0, 4]]]], \"expected\": [[[0, 0, 4], [1, 4, 4]], [[[0, 0, 4]], [[1, 0, 4]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 3\", \"actual\": [[], [[]]], \"expected\": [[], [[]]], \"passed\": true}, {\"check\": \"request-map-append fixture 4\", \"actual\": [[], [[]]], \"expected\": [[], [[]]], \"passed\": true}, {\"check\": \"request-map-append fixture 5\", \"actual\": [[[1, 1, 1]], [[[0, 0, 1]], [[1, 0, 1]]]], \"expected\": [[[1, 1, 1]], [[[0, 0, 1]], [[1, 0, 1]]]], \"passed\": true}, {\"check\": \"request-map-append fixture 6\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}