{"abstract":"An object store maps upload part numbers and byte ranges onto stored parts: a part intersection begins at the later of range start and part start.","category":"HTTP ranges","checks":14,"contract":"x has stored part sizes in order and a query. [\"part\",n] (1-based) returns [206,bytes a-b/total] for that part, or [416,bytes */total] when n is outside 1..count or the part is empty. [\"range\",a,b] with inclusive bounds returns [416,bytes */total] unless 0<=a<=b<total; otherwise [206,rows] where each intersecting nonempty part yields [part-number,offset-within-part,count] in part order.","contract_signature":"x","evaluation_group":"s3-http_ranges-part-number-range-map","failed_approach":"The partial repair uses sizes=x['parts']\ntotal=sum(sizes)\nstarts=[]\nacc=0\nfor s in sizes:\n    starts.append(acc)\n    acc+=s\nq=x['query']\nif q[0]=='part':\n    n=q[1]\n    if not 1<=n<=len(sizes) or sizes[n-1]==0: return [416,'bytes */%d'%total]\n    a=starts[n-1]\n    return [206,'bytes %d-%d/%d'%(a,a+sizes[n-1]-1,total)]\na,b=q[1],q[2]\nif not 0<=a<=b<total: return [416,'bytes */%d'%total]\nout=[]\nfor i,s in enumerate(sizes):\n    lo=a\n    hi=min(b,starts[i]+s-1)\n    if lo<=hi: out.append([i+1,lo-starts[i],hi-lo+1])\nreturn [206,out], which still violates the stated contract.","family":"s3-http_ranges-part-number-range-map-overlap-lower-bound","id":"FA-27821","implementations":{"attempt":{"sha256":"4abc790e65f4c2db9df942c2cb20edbe179f3ea845673050421622fda3c1c78e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    sizes=x['parts']\n    total=sum(sizes)\n    starts=[]\n    acc=0\n    for s in sizes:\n        starts.append(acc)\n        acc+=s\n    q=x['query']\n    if q[0]=='part':\n        n=q[1]\n        if not 1<=n<=len(sizes) or sizes[n-1]==0: return [416,'bytes */%d'%total]\n        a=starts[n-1]\n        return [206,'bytes %d-%d/%d'%(a,a+sizes[n-1]-1,total)]\n    a,b=q[1],q[2]\n    if not 0<=a<=b<total: return [416,'bytes */%d'%total]\n    out=[]\n    for i,s in enumerate(sizes):\n        lo=a\n        hi=min(b,starts[i]+s-1)\n        if lo<=hi: out.append([i+1,lo-starts[i],hi-lo+1])\n    return [206,out]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('overlap-lower-bound fixture 0', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',2]}))), json.loads(json.dumps([206,'bytes 5-7/12'])))\ncheck('overlap-lower-bound fixture 1', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',3]}))), json.loads(json.dumps([206,'bytes 8-11/12'])))\ncheck('overlap-lower-bound fixture 2', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',0]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('overlap-lower-bound fixture 3', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',-1]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('overlap-lower-bound fixture 4', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',4]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('overlap-lower-bound fixture 5', json.loads(json.dumps(solve({'parts':[5,0,4],'query':['part',2]}))), json.loads(json.dumps([416,'bytes */9'])))\ncheck('overlap-lower-bound fixture 6', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',3,9]}))), json.loads(json.dumps([206,[[1,3,2],[2,0,3],[3,0,2]]])))\ncheck('overlap-lower-bound fixture 7', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',4,5]}))), json.loads(json.dumps([206,[[1,4,1],[2,0,1]]])))\ncheck('overlap-lower-bound fixture 8', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',5,7]}))), json.loads(json.dumps([206,[[2,0,3]]])))\ncheck('overlap-lower-bound fixture 9', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',0,12]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('overlap-lower-bound fixture 10', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',0,11]}))), json.loads(json.dumps([206,[[1,0,5],[2,0,3],[3,0,4]]])))\ncheck('overlap-lower-bound fixture 11', json.loads(json.dumps(solve({'parts':[5,0,4],'query':['range',4,5]}))), json.loads(json.dumps([206,[[1,4,1],[3,0,1]]])))\ncheck('overlap-lower-bound fixture 12', json.loads(json.dumps(solve({'parts':[],'query':['part',1]}))), json.loads(json.dumps([416,'bytes */0'])))\ncheck('overlap-lower-bound fixture 13', json.loads(json.dumps(solve({'parts':[N,N],'query':['part',2]}))), json.loads(json.dumps([206,\"bytes %d-%d/%d\"%(N,2*N-1,2*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":"6d7f61a8b4118d3585854a75eaad41496d3dfba99743d480b470630fb463e266","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    sizes=x['parts']\n    total=sum(sizes)\n    starts=[]\n    acc=0\n    for s in sizes:\n        starts.append(acc)\n        acc+=s\n    q=x['query']\n    if q[0]=='part':\n        n=q[1]\n        if not 1<=n<=len(sizes) or sizes[n-1]==0: return [416,'bytes */%d'%total]\n        a=starts[n-1]\n        return [206,'bytes %d-%d/%d'%(a,a+sizes[n-1]-1,total)]\n    a,b=q[1],q[2]\n    if not 0<=a<=b<total: return [416,'bytes */%d'%total]\n    out=[]\n    for i,s in enumerate(sizes):\n        lo=starts[i]\n        hi=min(b,starts[i]+s-1)\n        if lo<=hi: out.append([i+1,lo-starts[i],hi-lo+1])\n    return [206,out]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('overlap-lower-bound fixture 0', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',2]}))), json.loads(json.dumps([206,'bytes 5-7/12'])))\ncheck('overlap-lower-bound fixture 1', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',3]}))), json.loads(json.dumps([206,'bytes 8-11/12'])))\ncheck('overlap-lower-bound fixture 2', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',0]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('overlap-lower-bound fixture 3', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',-1]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('overlap-lower-bound fixture 4', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['part',4]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('overlap-lower-bound fixture 5', json.loads(json.dumps(solve({'parts':[5,0,4],'query':['part',2]}))), json.loads(json.dumps([416,'bytes */9'])))\ncheck('overlap-lower-bound fixture 6', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',3,9]}))), json.loads(json.dumps([206,[[1,3,2],[2,0,3],[3,0,2]]])))\ncheck('overlap-lower-bound fixture 7', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',4,5]}))), json.loads(json.dumps([206,[[1,4,1],[2,0,1]]])))\ncheck('overlap-lower-bound fixture 8', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',5,7]}))), json.loads(json.dumps([206,[[2,0,3]]])))\ncheck('overlap-lower-bound fixture 9', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',0,12]}))), json.loads(json.dumps([416,'bytes */12'])))\ncheck('overlap-lower-bound fixture 10', json.loads(json.dumps(solve({'parts':[5,3,4],'query':['range',0,11]}))), json.loads(json.dumps([206,[[1,0,5],[2,0,3],[3,0,4]]])))\ncheck('overlap-lower-bound fixture 11', json.loads(json.dumps(solve({'parts':[5,0,4],'query':['range',4,5]}))), json.loads(json.dumps([206,[[1,4,1],[3,0,1]]])))\ncheck('overlap-lower-bound fixture 12', json.loads(json.dumps(solve({'parts':[],'query':['part',1]}))), json.loads(json.dumps([416,'bytes */0'])))\ncheck('overlap-lower-bound fixture 13', json.loads(json.dumps(solve({'parts':[N,N],'query':['part',2]}))), json.loads(json.dumps([206,\"bytes %d-%d/%d\"%(N,2*N-1,2*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":"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-part-number-range-map-overlap-lower-bound","generated_at":"2026-09-29T14:41:28.460182+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.","root_cause":"The part-number-range-map-overlap-lower-bound decision uses sizes=x['parts']\ntotal=sum(sizes)\nstarts=[]\nacc=0\nfor s in sizes:\n    starts.append(acc)\n    acc+=s\nq=x['query']\nif q[0]=='part':\n    n=q[1]\n    if not 1<=n<=len(sizes) or sizes[n-1]==0: return [416,'bytes */%d'%total]\n    a=starts[n-1]\n    return [206,'bytes %d-%d/%d'%(a,a+sizes[n-1]-1,total)]\na,b=q[1],q[2]\nif not 0<=a<=b<total: return [416,'bytes */%d'%total]\nout=[]\nfor i,s in enumerate(sizes):\n    lo=starts[i]\n    hi=min(b,starts[i]+s-1)\n    if lo<=hi: out.append([i+1,lo-starts[i],hi-lo+1])\nreturn [206,out].","sha256":"8e0f1bc3e3c50a036f28f5f6a65e0f1b7b5819bd981ae56ad1def7bf6a7419e9","title":"An object store maps upload part numbers and byte ranges onto stored parts: a part intersection begins at the later of range start and part start · 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":38.381,"exit_code":1,"observations":[{"actual":[206,"bytes 5-7/12"],"check":"overlap-lower-bound fixture 0","expected":[206,"bytes 5-7/12"],"passed":true},{"actual":[206,"bytes 8-11/12"],"check":"overlap-lower-bound fixture 1","expected":[206,"bytes 8-11/12"],"passed":true},{"actual":[416,"bytes */12"],"check":"overlap-lower-bound fixture 2","expected":[416,"bytes */12"],"passed":true},{"actual":[416,"bytes */12"],"check":"overlap-lower-bound fixture 3","expected":[416,"bytes */12"],"passed":true},{"actual":[416,"bytes */12"],"check":"overlap-lower-bound fixture 4","expected":[416,"bytes */12"],"passed":true},{"actual":[416,"bytes */9"],"check":"overlap-lower-bound fixture 5","expected":[416,"bytes */9"],"passed":true},{"actual":[206,[[1,3,2],[2,-2,5],[3,-5,7]]],"check":"overlap-lower-bound fixture 6","expected":[206,[[1,3,2],[2,0,3],[3,0,2]]],"passed":false},{"actual":[206,[[1,4,1],[2,-1,2],[3,-4,2]]],"check":"overlap-lower-bound fixture 7","expected":[206,[[1,4,1],[2,0,1]]],"passed":false},{"actual":[206,[[2,0,3],[3,-3,3]]],"check":"overlap-lower-bound fixture 8","expected":[206,[[2,0,3]]],"passed":false},{"actual":[416,"bytes */12"],"check":"overlap-lower-bound fixture 9","expected":[416,"bytes */12"],"passed":true},{"actual":[206,[[1,0,5],[2,-5,8],[3,-8,12]]],"check":"overlap-lower-bound fixture 10","expected":[206,[[1,0,5],[2,0,3],[3,0,4]]],"passed":false},{"actual":[206,[[1,4,1],[2,-1,1],[3,-1,2]]],"check":"overlap-lower-bound fixture 11","expected":[206,[[1,4,1],[3,0,1]]],"passed":false},{"actual":[416,"bytes */0"],"check":"overlap-lower-bound fixture 12","expected":[416,"bytes */0"],"passed":true},{"actual":[206,"bytes 1-1/2"],"check":"overlap-lower-bound fixture 13","expected":[206,"bytes 1-1/2"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"overlap-lower-bound fixture 0\", \"actual\": [206, \"bytes 5-7/12\"], \"expected\": [206, \"bytes 5-7/12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 1\", \"actual\": [206, \"bytes 8-11/12\"], \"expected\": [206, \"bytes 8-11/12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 2\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 3\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 4\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 5\", \"actual\": [416, \"bytes */9\"], \"expected\": [416, \"bytes */9\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 6\", \"actual\": [206, [[1, 3, 2], [2, -2, 5], [3, -5, 7]]], \"expected\": [206, [[1, 3, 2], [2, 0, 3], [3, 0, 2]]], \"passed\": false}, {\"check\": \"overlap-lower-bound fixture 7\", \"actual\": [206, [[1, 4, 1], [2, -1, 2], [3, -4, 2]]], \"expected\": [206, [[1, 4, 1], [2, 0, 1]]], \"passed\": false}, {\"check\": \"overlap-lower-bound fixture 8\", \"actual\": [206, [[2, 0, 3], [3, -3, 3]]], \"expected\": [206, [[2, 0, 3]]], \"passed\": false}, {\"check\": \"overlap-lower-bound fixture 9\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 10\", \"actual\": [206, [[1, 0, 5], [2, -5, 8], [3, -8, 12]]], \"expected\": [206, [[1, 0, 5], [2, 0, 3], [3, 0, 4]]], \"passed\": false}, {\"check\": \"overlap-lower-bound fixture 11\", \"actual\": [206, [[1, 4, 1], [2, -1, 1], [3, -1, 2]]], \"expected\": [206, [[1, 4, 1], [3, 0, 1]]], \"passed\": false}, {\"check\": \"overlap-lower-bound fixture 12\", \"actual\": [416, \"bytes */0\"], \"expected\": [416, \"bytes */0\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 13\", \"actual\": [206, \"bytes 1-1/2\"], \"expected\": [206, \"bytes 1-1/2\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.893,"exit_code":1,"observations":[{"actual":[206,"bytes 5-7/12"],"check":"overlap-lower-bound fixture 0","expected":[206,"bytes 5-7/12"],"passed":true},{"actual":[206,"bytes 8-11/12"],"check":"overlap-lower-bound fixture 1","expected":[206,"bytes 8-11/12"],"passed":true},{"actual":[416,"bytes */12"],"check":"overlap-lower-bound fixture 2","expected":[416,"bytes */12"],"passed":true},{"actual":[416,"bytes */12"],"check":"overlap-lower-bound fixture 3","expected":[416,"bytes */12"],"passed":true},{"actual":[416,"bytes */12"],"check":"overlap-lower-bound fixture 4","expected":[416,"bytes */12"],"passed":true},{"actual":[416,"bytes */9"],"check":"overlap-lower-bound fixture 5","expected":[416,"bytes */9"],"passed":true},{"actual":[206,[[1,0,5],[2,0,3],[3,0,2]]],"check":"overlap-lower-bound fixture 6","expected":[206,[[1,3,2],[2,0,3],[3,0,2]]],"passed":false},{"actual":[206,[[1,0,5],[2,0,1]]],"check":"overlap-lower-bound fixture 7","expected":[206,[[1,4,1],[2,0,1]]],"passed":false},{"actual":[206,[[1,0,5],[2,0,3]]],"check":"overlap-lower-bound fixture 8","expected":[206,[[2,0,3]]],"passed":false},{"actual":[416,"bytes */12"],"check":"overlap-lower-bound fixture 9","expected":[416,"bytes */12"],"passed":true},{"actual":[206,[[1,0,5],[2,0,3],[3,0,4]]],"check":"overlap-lower-bound fixture 10","expected":[206,[[1,0,5],[2,0,3],[3,0,4]]],"passed":true},{"actual":[206,[[1,0,5],[3,0,1]]],"check":"overlap-lower-bound fixture 11","expected":[206,[[1,4,1],[3,0,1]]],"passed":false},{"actual":[416,"bytes */0"],"check":"overlap-lower-bound fixture 12","expected":[416,"bytes */0"],"passed":true},{"actual":[206,"bytes 1-1/2"],"check":"overlap-lower-bound fixture 13","expected":[206,"bytes 1-1/2"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"overlap-lower-bound fixture 0\", \"actual\": [206, \"bytes 5-7/12\"], \"expected\": [206, \"bytes 5-7/12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 1\", \"actual\": [206, \"bytes 8-11/12\"], \"expected\": [206, \"bytes 8-11/12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 2\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 3\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 4\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 5\", \"actual\": [416, \"bytes */9\"], \"expected\": [416, \"bytes */9\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 6\", \"actual\": [206, [[1, 0, 5], [2, 0, 3], [3, 0, 2]]], \"expected\": [206, [[1, 3, 2], [2, 0, 3], [3, 0, 2]]], \"passed\": false}, {\"check\": \"overlap-lower-bound fixture 7\", \"actual\": [206, [[1, 0, 5], [2, 0, 1]]], \"expected\": [206, [[1, 4, 1], [2, 0, 1]]], \"passed\": false}, {\"check\": \"overlap-lower-bound fixture 8\", \"actual\": [206, [[1, 0, 5], [2, 0, 3]]], \"expected\": [206, [[2, 0, 3]]], \"passed\": false}, {\"check\": \"overlap-lower-bound fixture 9\", \"actual\": [416, \"bytes */12\"], \"expected\": [416, \"bytes */12\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 10\", \"actual\": [206, [[1, 0, 5], [2, 0, 3], [3, 0, 4]]], \"expected\": [206, [[1, 0, 5], [2, 0, 3], [3, 0, 4]]], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 11\", \"actual\": [206, [[1, 0, 5], [3, 0, 1]]], \"expected\": [206, [[1, 4, 1], [3, 0, 1]]], \"passed\": false}, {\"check\": \"overlap-lower-bound fixture 12\", \"actual\": [416, \"bytes */0\"], \"expected\": [416, \"bytes */0\"], \"passed\": true}, {\"check\": \"overlap-lower-bound fixture 13\", \"actual\": [206, \"bytes 1-1/2\"], \"expected\": [206, \"bytes 1-1/2\"], \"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."}}