{"abstract":"Concurrent download clients share bounded origin range reads: large byte requests are bounded by the origin chunk policy.","category":"HTTP ranges","checks":8,"contract":"x contains ordered jobs [client,absolute-start,count,cancelled], positive chunk size, and dispatch slot count. Drop canceled and zero-length jobs. Maintain first-appearance client order; each client has FIFO requests. Dispatch at most one chunk per client per round, rotate unfinished clients, split long ranges, and remove exhausted requests. Return [dispatches,pending-jobs], where dispatches are [client,start,count] and pending jobs retain scheduler order. This models range-specific origin request scheduling, without network retries.","evaluation_group":"s3-http_ranges-range-fetch-round-robin","failed_approach":"The partial repair uses queues={}\norder=[]\nfor client,start,count,cancelled in x['jobs']:\n    if cancelled or count==0: continue\n    if client not in queues:\n        queues[client]=[]\n        order.append(client)\n    queues[client].append([start,count])\nout=[]\nfor slot in range(x['slots']):\n    if not order: break\n    client=order.pop(0)\n    start,count=queues[client][0]\n    amount=x['chunk']\n    out.append([client,start,amount])\n    if amount==count:\n        queues[client].pop(0)\n    else:\n        queues[client][0]=[start+amount,count-amount]\n    if queues[client]: order.append(client)\npending=[[client,start,count] for client in order for start,count in queues[client]]\nreturn [out,pending], which still violates the stated contract.","family":"s3-http_ranges-range-fetch-round-robin-chunk-size","id":"FA-27211","implementations":{"attempt":{"sha256":"77702e5a973e4d9ed3cf10bbed1fd49cfb49489ada374dc42940e96fb805b14e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    queues={}\n    order=[]\n    for client,start,count,cancelled in x['jobs']:\n        if cancelled or count==0: continue\n        if client not in queues:\n            queues[client]=[]\n            order.append(client)\n        queues[client].append([start,count])\n    out=[]\n    for slot in range(x['slots']):\n        if not order: break\n        client=order.pop(0)\n        start,count=queues[client][0]\n        amount=x['chunk']\n        out.append([client,start,amount])\n        if amount==count:\n            queues[client].pop(0)\n        else:\n            queues[client][0]=[start+amount,count-amount]\n        if queues[client]: order.append(client)\n    pending=[[client,start,count] for client in order for start,count in queues[client]]\n    return [out,pending]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('chunk-size fixture 0', json.loads(json.dumps(solve({'jobs':[['a',0,5,False],['b',10,2,False]],'chunk':2,'slots':4}))), json.loads(json.dumps([[['a',0,2],['b',10,2],['a',2,2],['a',4,1]],[]])))\ncheck('chunk-size fixture 1', json.loads(json.dumps(solve({'jobs':[['b',10,2,False],['a',0,2,False]],'chunk':1,'slots':2}))), json.loads(json.dumps([[['b',10,1],['a',0,1]],[['b',11,1],['a',1,1]]])))\ncheck('chunk-size fixture 2', json.loads(json.dumps(solve({'jobs':[['a',0,0,False],['b',10,2,True]],'chunk':1,'slots':2}))), json.loads(json.dumps([[],[]])))\ncheck('chunk-size fixture 3', json.loads(json.dumps(solve({'jobs':[['a',0,2,False],['a',9,1,False],['b',4,1,False]],'chunk':2,'slots':2}))), json.loads(json.dumps([[['a',0,2],['b',4,1]],[['a',9,1]]])))\ncheck('chunk-size fixture 4', json.loads(json.dumps(solve({'jobs':[['a',0,2,False]],'chunk':2,'slots':0}))), json.loads(json.dumps([[],[['a',0,2]]])))\ncheck('chunk-size fixture 5', json.loads(json.dumps(solve({'jobs':[['a',0,2,False],['a',8,1,False]],'chunk':2,'slots':0}))), json.loads(json.dumps([[],[['a',0,2],['a',8,1]]])))\ncheck('chunk-size fixture 6', json.loads(json.dumps(solve({'jobs':[['a',N,N+1,False]],'chunk':N,'slots':1}))), json.loads(json.dumps([[['a',N,N]],[['a',2*N,1]]])))\ncheck('chunk-size fixture 7', json.loads(json.dumps(solve({'jobs':[['a',0,1,False]],'chunk':3,'slots':2}))), json.loads(json.dumps([[['a',0,1]],[]])))\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":"436a1caeaab8bce79f9ecd41617d6fe158cad34863a9ee70ca3205cf77d1e79c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    queues={}\n    order=[]\n    for client,start,count,cancelled in x['jobs']:\n        if cancelled or count==0: continue\n        if client not in queues:\n            queues[client]=[]\n            order.append(client)\n        queues[client].append([start,count])\n    out=[]\n    for slot in range(x['slots']):\n        if not order: break\n        client=order.pop(0)\n        start,count=queues[client][0]\n        amount=count\n        out.append([client,start,amount])\n        if amount==count:\n            queues[client].pop(0)\n        else:\n            queues[client][0]=[start+amount,count-amount]\n        if queues[client]: order.append(client)\n    pending=[[client,start,count] for client in order for start,count in queues[client]]\n    return [out,pending]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('chunk-size fixture 0', json.loads(json.dumps(solve({'jobs':[['a',0,5,False],['b',10,2,False]],'chunk':2,'slots':4}))), json.loads(json.dumps([[['a',0,2],['b',10,2],['a',2,2],['a',4,1]],[]])))\ncheck('chunk-size fixture 1', json.loads(json.dumps(solve({'jobs':[['b',10,2,False],['a',0,2,False]],'chunk':1,'slots':2}))), json.loads(json.dumps([[['b',10,1],['a',0,1]],[['b',11,1],['a',1,1]]])))\ncheck('chunk-size fixture 2', json.loads(json.dumps(solve({'jobs':[['a',0,0,False],['b',10,2,True]],'chunk':1,'slots':2}))), json.loads(json.dumps([[],[]])))\ncheck('chunk-size fixture 3', json.loads(json.dumps(solve({'jobs':[['a',0,2,False],['a',9,1,False],['b',4,1,False]],'chunk':2,'slots':2}))), json.loads(json.dumps([[['a',0,2],['b',4,1]],[['a',9,1]]])))\ncheck('chunk-size fixture 4', json.loads(json.dumps(solve({'jobs':[['a',0,2,False]],'chunk':2,'slots':0}))), json.loads(json.dumps([[],[['a',0,2]]])))\ncheck('chunk-size fixture 5', json.loads(json.dumps(solve({'jobs':[['a',0,2,False],['a',8,1,False]],'chunk':2,'slots':0}))), json.loads(json.dumps([[],[['a',0,2],['a',8,1]]])))\ncheck('chunk-size fixture 6', json.loads(json.dumps(solve({'jobs':[['a',N,N+1,False]],'chunk':N,'slots':1}))), json.loads(json.dumps([[['a',N,N]],[['a',2*N,1]]])))\ncheck('chunk-size fixture 7', json.loads(json.dumps(solve({'jobs':[['a',0,1,False]],'chunk':3,'slots':2}))), json.loads(json.dumps([[['a',0,1]],[]])))\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":"9809954899d5a8bf75b1eb155a6dfe408304d256ffa09361f1b08f9791036caa","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    queues={}\n    order=[]\n    for client,start,count,cancelled in x['jobs']:\n        if cancelled or count==0: continue\n        if client not in queues:\n            queues[client]=[]\n            order.append(client)\n        queues[client].append([start,count])\n    out=[]\n    for slot in range(x['slots']):\n        if not order: break\n        client=order.pop(0)\n        start,count=queues[client][0]\n        amount=min(count,x['chunk'])\n        out.append([client,start,amount])\n        if amount==count:\n            queues[client].pop(0)\n        else:\n            queues[client][0]=[start+amount,count-amount]\n        if queues[client]: order.append(client)\n    pending=[[client,start,count] for client in order for start,count in queues[client]]\n    return [out,pending]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('chunk-size fixture 0', json.loads(json.dumps(solve({'jobs':[['a',0,5,False],['b',10,2,False]],'chunk':2,'slots':4}))), json.loads(json.dumps([[['a',0,2],['b',10,2],['a',2,2],['a',4,1]],[]])))\ncheck('chunk-size fixture 1', json.loads(json.dumps(solve({'jobs':[['b',10,2,False],['a',0,2,False]],'chunk':1,'slots':2}))), json.loads(json.dumps([[['b',10,1],['a',0,1]],[['b',11,1],['a',1,1]]])))\ncheck('chunk-size fixture 2', json.loads(json.dumps(solve({'jobs':[['a',0,0,False],['b',10,2,True]],'chunk':1,'slots':2}))), json.loads(json.dumps([[],[]])))\ncheck('chunk-size fixture 3', json.loads(json.dumps(solve({'jobs':[['a',0,2,False],['a',9,1,False],['b',4,1,False]],'chunk':2,'slots':2}))), json.loads(json.dumps([[['a',0,2],['b',4,1]],[['a',9,1]]])))\ncheck('chunk-size fixture 4', json.loads(json.dumps(solve({'jobs':[['a',0,2,False]],'chunk':2,'slots':0}))), json.loads(json.dumps([[],[['a',0,2]]])))\ncheck('chunk-size fixture 5', json.loads(json.dumps(solve({'jobs':[['a',0,2,False],['a',8,1,False]],'chunk':2,'slots':0}))), json.loads(json.dumps([[],[['a',0,2],['a',8,1]]])))\ncheck('chunk-size fixture 6', json.loads(json.dumps(solve({'jobs':[['a',N,N+1,False]],'chunk':N,'slots':1}))), json.loads(json.dumps([[['a',N,N]],[['a',2*N,1]]])))\ncheck('chunk-size fixture 7', json.loads(json.dumps(solve({'jobs':[['a',0,1,False]],'chunk':3,'slots':2}))), json.loads(json.dumps([[['a',0,1]],[]])))\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-range-fetch-round-robin-chunk-size","generated_at":"2026-09-29T14:41:23.078255+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: queues={}\norder=[]\nfor client,start,count,cancelled in x['jobs']:\n    if cancelled or count==0: continue\n    if client not in queues:\n        queues[client]=[]\n        order.append(client)\n    queues[client].append([start,count])\nout=[]\nfor slot in range(x['slots']):\n    if not order: break\n    client=order.pop(0)\n    start,count=queues[client][0]\n    amount=min(count,x['chunk'])\n    out.append([client,start,amount])\n    if amount==count:\n        queues[client].pop(0)\n    else:\n        queues[client][0]=[start+amount,count-amount]\n    if queues[client]: order.append(client)\npending=[[client,start,count] for client in order for start,count in queues[client]]\nreturn [out,pending]","root_cause":"The range-fetch-round-robin-chunk-size decision uses queues={}\norder=[]\nfor client,start,count,cancelled in x['jobs']:\n    if cancelled or count==0: continue\n    if client not in queues:\n        queues[client]=[]\n        order.append(client)\n    queues[client].append([start,count])\nout=[]\nfor slot in range(x['slots']):\n    if not order: break\n    client=order.pop(0)\n    start,count=queues[client][0]\n    amount=count\n    out.append([client,start,amount])\n    if amount==count:\n        queues[client].pop(0)\n    else:\n        queues[client][0]=[start+amount,count-amount]\n    if queues[client]: order.append(client)\npending=[[client,start,count] for client in order for start,count in queues[client]]\nreturn [out,pending].","sha256":"aeebcdca1cb4ebb942011bd2de6e4fd39ceb56c37feb0ded144f93a466d888b8","title":"Concurrent download clients share bounded origin range reads: large byte requests are bounded by the origin chunk policy · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.067,"exit_code":1,"observations":[{"actual":[[["a",0,2],["b",10,2],["a",2,2],["a",4,2]],[["a",6,-1]]],"check":"chunk-size fixture 0","expected":[[["a",0,2],["b",10,2],["a",2,2],["a",4,1]],[]],"passed":false},{"actual":[[["b",10,1],["a",0,1]],[["b",11,1],["a",1,1]]],"check":"chunk-size fixture 1","expected":[[["b",10,1],["a",0,1]],[["b",11,1],["a",1,1]]],"passed":true},{"actual":[[],[]],"check":"chunk-size fixture 2","expected":[[],[]],"passed":true},{"actual":[[["a",0,2],["b",4,2]],[["a",9,1],["b",6,-1]]],"check":"chunk-size fixture 3","expected":[[["a",0,2],["b",4,1]],[["a",9,1]]],"passed":false},{"actual":[[],[["a",0,2]]],"check":"chunk-size fixture 4","expected":[[],[["a",0,2]]],"passed":true},{"actual":[[],[["a",0,2],["a",8,1]]],"check":"chunk-size fixture 5","expected":[[],[["a",0,2],["a",8,1]]],"passed":true},{"actual":[[["a",1,1]],[["a",2,1]]],"check":"chunk-size fixture 6","expected":[[["a",1,1]],[["a",2,1]]],"passed":true},{"actual":[[["a",0,3],["a",3,3]],[["a",6,-5]]],"check":"chunk-size fixture 7","expected":[[["a",0,1]],[]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"chunk-size fixture 0\", \"actual\": [[[\"a\", 0, 2], [\"b\", 10, 2], [\"a\", 2, 2], [\"a\", 4, 2]], [[\"a\", 6, -1]]], \"expected\": [[[\"a\", 0, 2], [\"b\", 10, 2], [\"a\", 2, 2], [\"a\", 4, 1]], []], \"passed\": false}, {\"check\": \"chunk-size fixture 1\", \"actual\": [[[\"b\", 10, 1], [\"a\", 0, 1]], [[\"b\", 11, 1], [\"a\", 1, 1]]], \"expected\": [[[\"b\", 10, 1], [\"a\", 0, 1]], [[\"b\", 11, 1], [\"a\", 1, 1]]], \"passed\": true}, {\"check\": \"chunk-size fixture 2\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}, {\"check\": \"chunk-size fixture 3\", \"actual\": [[[\"a\", 0, 2], [\"b\", 4, 2]], [[\"a\", 9, 1], [\"b\", 6, -1]]], \"expected\": [[[\"a\", 0, 2], [\"b\", 4, 1]], [[\"a\", 9, 1]]], \"passed\": false}, {\"check\": \"chunk-size fixture 4\", \"actual\": [[], [[\"a\", 0, 2]]], \"expected\": [[], [[\"a\", 0, 2]]], \"passed\": true}, {\"check\": \"chunk-size fixture 5\", \"actual\": [[], [[\"a\", 0, 2], [\"a\", 8, 1]]], \"expected\": [[], [[\"a\", 0, 2], [\"a\", 8, 1]]], \"passed\": true}, {\"check\": \"chunk-size fixture 6\", \"actual\": [[[\"a\", 1, 1]], [[\"a\", 2, 1]]], \"expected\": [[[\"a\", 1, 1]], [[\"a\", 2, 1]]], \"passed\": true}, {\"check\": \"chunk-size fixture 7\", \"actual\": [[[\"a\", 0, 3], [\"a\", 3, 3]], [[\"a\", 6, -5]]], \"expected\": [[[\"a\", 0, 1]], []], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":37.932,"exit_code":1,"observations":[{"actual":[[["a",0,5],["b",10,2]],[]],"check":"chunk-size fixture 0","expected":[[["a",0,2],["b",10,2],["a",2,2],["a",4,1]],[]],"passed":false},{"actual":[[["b",10,2],["a",0,2]],[]],"check":"chunk-size fixture 1","expected":[[["b",10,1],["a",0,1]],[["b",11,1],["a",1,1]]],"passed":false},{"actual":[[],[]],"check":"chunk-size fixture 2","expected":[[],[]],"passed":true},{"actual":[[["a",0,2],["b",4,1]],[["a",9,1]]],"check":"chunk-size fixture 3","expected":[[["a",0,2],["b",4,1]],[["a",9,1]]],"passed":true},{"actual":[[],[["a",0,2]]],"check":"chunk-size fixture 4","expected":[[],[["a",0,2]]],"passed":true},{"actual":[[],[["a",0,2],["a",8,1]]],"check":"chunk-size fixture 5","expected":[[],[["a",0,2],["a",8,1]]],"passed":true},{"actual":[[["a",1,2]],[]],"check":"chunk-size fixture 6","expected":[[["a",1,1]],[["a",2,1]]],"passed":false},{"actual":[[["a",0,1]],[]],"check":"chunk-size fixture 7","expected":[[["a",0,1]],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"chunk-size fixture 0\", \"actual\": [[[\"a\", 0, 5], [\"b\", 10, 2]], []], \"expected\": [[[\"a\", 0, 2], [\"b\", 10, 2], [\"a\", 2, 2], [\"a\", 4, 1]], []], \"passed\": false}, {\"check\": \"chunk-size fixture 1\", \"actual\": [[[\"b\", 10, 2], [\"a\", 0, 2]], []], \"expected\": [[[\"b\", 10, 1], [\"a\", 0, 1]], [[\"b\", 11, 1], [\"a\", 1, 1]]], \"passed\": false}, {\"check\": \"chunk-size fixture 2\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}, {\"check\": \"chunk-size fixture 3\", \"actual\": [[[\"a\", 0, 2], [\"b\", 4, 1]], [[\"a\", 9, 1]]], \"expected\": [[[\"a\", 0, 2], [\"b\", 4, 1]], [[\"a\", 9, 1]]], \"passed\": true}, {\"check\": \"chunk-size fixture 4\", \"actual\": [[], [[\"a\", 0, 2]]], \"expected\": [[], [[\"a\", 0, 2]]], \"passed\": true}, {\"check\": \"chunk-size fixture 5\", \"actual\": [[], [[\"a\", 0, 2], [\"a\", 8, 1]]], \"expected\": [[], [[\"a\", 0, 2], [\"a\", 8, 1]]], \"passed\": true}, {\"check\": \"chunk-size fixture 6\", \"actual\": [[[\"a\", 1, 2]], []], \"expected\": [[[\"a\", 1, 1]], [[\"a\", 2, 1]]], \"passed\": false}, {\"check\": \"chunk-size fixture 7\", \"actual\": [[[\"a\", 0, 1]], []], \"expected\": [[[\"a\", 0, 1]], []], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.073,"exit_code":0,"observations":[{"actual":[[["a",0,2],["b",10,2],["a",2,2],["a",4,1]],[]],"check":"chunk-size fixture 0","expected":[[["a",0,2],["b",10,2],["a",2,2],["a",4,1]],[]],"passed":true},{"actual":[[["b",10,1],["a",0,1]],[["b",11,1],["a",1,1]]],"check":"chunk-size fixture 1","expected":[[["b",10,1],["a",0,1]],[["b",11,1],["a",1,1]]],"passed":true},{"actual":[[],[]],"check":"chunk-size fixture 2","expected":[[],[]],"passed":true},{"actual":[[["a",0,2],["b",4,1]],[["a",9,1]]],"check":"chunk-size fixture 3","expected":[[["a",0,2],["b",4,1]],[["a",9,1]]],"passed":true},{"actual":[[],[["a",0,2]]],"check":"chunk-size fixture 4","expected":[[],[["a",0,2]]],"passed":true},{"actual":[[],[["a",0,2],["a",8,1]]],"check":"chunk-size fixture 5","expected":[[],[["a",0,2],["a",8,1]]],"passed":true},{"actual":[[["a",1,1]],[["a",2,1]]],"check":"chunk-size fixture 6","expected":[[["a",1,1]],[["a",2,1]]],"passed":true},{"actual":[[["a",0,1]],[]],"check":"chunk-size fixture 7","expected":[[["a",0,1]],[]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"chunk-size fixture 0\", \"actual\": [[[\"a\", 0, 2], [\"b\", 10, 2], [\"a\", 2, 2], [\"a\", 4, 1]], []], \"expected\": [[[\"a\", 0, 2], [\"b\", 10, 2], [\"a\", 2, 2], [\"a\", 4, 1]], []], \"passed\": true}, {\"check\": \"chunk-size fixture 1\", \"actual\": [[[\"b\", 10, 1], [\"a\", 0, 1]], [[\"b\", 11, 1], [\"a\", 1, 1]]], \"expected\": [[[\"b\", 10, 1], [\"a\", 0, 1]], [[\"b\", 11, 1], [\"a\", 1, 1]]], \"passed\": true}, {\"check\": \"chunk-size fixture 2\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}, {\"check\": \"chunk-size fixture 3\", \"actual\": [[[\"a\", 0, 2], [\"b\", 4, 1]], [[\"a\", 9, 1]]], \"expected\": [[[\"a\", 0, 2], [\"b\", 4, 1]], [[\"a\", 9, 1]]], \"passed\": true}, {\"check\": \"chunk-size fixture 4\", \"actual\": [[], [[\"a\", 0, 2]]], \"expected\": [[], [[\"a\", 0, 2]]], \"passed\": true}, {\"check\": \"chunk-size fixture 5\", \"actual\": [[], [[\"a\", 0, 2], [\"a\", 8, 1]]], \"expected\": [[], [[\"a\", 0, 2], [\"a\", 8, 1]]], \"passed\": true}, {\"check\": \"chunk-size fixture 6\", \"actual\": [[[\"a\", 1, 1]], [[\"a\", 2, 1]]], \"expected\": [[[\"a\", 1, 1]], [[\"a\", 2, 1]]], \"passed\": true}, {\"check\": \"chunk-size fixture 7\", \"actual\": [[[\"a\", 0, 1]], []], \"expected\": [[[\"a\", 0, 1]], []], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}