FA-27166 / HTTP ranges / Open access
A multipart sender resumes framing and payload segments across transport credit windows: accepted bytes advance the cursor rather than replacing it · case 01
A multipart sender resumes framing and payload segments across transport credit windows: accepted bytes advance the cursor rather than replacing it.
ROOT CAUSE
The multipart-write-cursor-offset-progress decision uses segments=x['segments'] index=0 offset=0 out=[] for budget in x['budgets']: sent='' while index<len(segments): segment=segments[index] if offset>=len(segment): index+=1 offset=0 continue if budget==0: break amount=min(budget,len(segment)-offset) sent+=segment[offset:offset+amount] offset=amount if amount==0: break budget-=amount out.append(sent) return [out,index,offset].
VERIFIED REPAIR
Apply the bounded decision exactly: segments=x['segments'] index=0 offset=0 out=[] for budget in x['budgets']: sent='' while index<len(segments): segment=segments[index] if offset>=len(segment): index+=1 offset=0 continue if budget==0: break amount=min(budget,len(segment)-offset) sent+=segment[offset:offset+amount] offset+=amount budget-=amount out.append(sent) return [out,index,offset]
Unsuccessful approach: The partial repair uses segments=x['segments'] index=0 offset=0 out=[] for budget in x['budgets']: sent='' while index<len(segments): segment=segments[index] if offset>=len(segment): index+=1 offset=0 continue if budget==0: break amount=min(budget,len(segment)-offset) sent+=segment[offset:offset+amount] offset+=amount if offset==0 else amount+1 offset=min(offset,len(segment)) budget-=amount out.append(sent) return [out,index,offset], which still violates the stated contract.
Case contract
x has nonempty ASCII segments representing alternating boundary/header/body/framing bytes, and nonnegative write budgets. Drain in order, consuming each budget across segment boundaries. Return [one emitted string per budget,segment-index,intra-segment-offset]. Empty segments are skipped even with zero budget. A exhausted plan is stable. These preframed segments isolate cursor management from wire-format construction.
Why this case matters
Range responses combine representation identity, conditional requests, framing, and partial-object state.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
segments=x['segments']
index=0
offset=0
out=[]
for budget in x['budgets']:
sent=''
while index<len(segments):
segment=segments[index]
if offset>=len(segment):
index+=1
offset=0
continue
if budget==0: break
amount=min(budget,len(segment)-offset)
sent+=segment[offset:offset+amount]
offset=amount
if amount==0: break
budget-=amount
out.append(sent)
return [out,index,offset]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('offset-progress fixture 0', json.loads(json.dumps(solve({'segments':['--b','H','BODY','\r\n'],'budgets':[2,2,3,3]}))), json.loads(json.dumps([['--','bH','BOD','Y\r\n'],4,0])))
check('offset-progress fixture 1', json.loads(json.dumps(solve({'segments':['A','BC'],'budgets':[1,0,1,1,1]}))), json.loads(json.dumps([['A','','B','C',''],2,0])))
check('offset-progress fixture 2', json.loads(json.dumps(solve({'segments':['','A','','BC',''],'budgets':[0,2,1]}))), json.loads(json.dumps([['','AB','C'],5,0])))
check('offset-progress fixture 3', json.loads(json.dumps(solve({'segments':[],'budgets':[0,1]}))), json.loads(json.dumps([['',''],0,0])))
check('offset-progress fixture 4', json.loads(json.dumps(solve({'segments':['ABCDE'],'budgets':[2,1]}))), json.loads(json.dumps([['AB','C'],0,3])))
check('offset-progress fixture 5', json.loads(json.dumps(solve({'segments':["p"*N,'X'],'budgets':[N,1]}))), json.loads(json.dumps([["p"*N,'X'],2,0])))
check('offset-progress fixture 6', json.loads(json.dumps(solve({'segments':['AB','CDE'],'budgets':[4]}))), json.loads(json.dumps([['ABCD'],1,2])))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| offset-progress fixture 0 | [['--', 'b-', '-bb', '-bb'], 0, 1] | [['--', 'bH', 'BOD', 'Y\r\n'], 4, 0] | Failed |
| offset-progress fixture 1 | [['A', '', 'B', 'C', 'C'], 1, 1] | [['A', '', 'B', 'C', ''], 2, 0] | Failed |
| offset-progress fixture 2 | [['', 'AB', 'C'], 3, 1] | [['', 'AB', 'C'], 5, 0] | Failed |
| offset-progress fixture 3 | [['', ''], 0, 0] | [['', ''], 0, 0] | Passed |
| offset-progress fixture 4 | [['AB', 'C'], 0, 1] | [['AB', 'C'], 0, 3] | Failed |
| offset-progress fixture 5 | [['p', 'X'], 2, 0] | [['p', 'X'], 2, 0] | Passed |
| offset-progress fixture 6 | [['ABCD'], 1, 2] | [['ABCD'], 1, 2] | Passed |
SHA-256 / a6739bb5d9d1184fb11352c981e46e4169fc2a95da38558fb579992cadea7bbb
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
segments=x['segments']
index=0
offset=0
out=[]
for budget in x['budgets']:
sent=''
while index<len(segments):
segment=segments[index]
if offset>=len(segment):
index+=1
offset=0
continue
if budget==0: break
amount=min(budget,len(segment)-offset)
sent+=segment[offset:offset+amount]
offset+=amount if offset==0 else amount+1
offset=min(offset,len(segment))
budget-=amount
out.append(sent)
return [out,index,offset]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('offset-progress fixture 0', json.loads(json.dumps(solve({'segments':['--b','H','BODY','\r\n'],'budgets':[2,2,3,3]}))), json.loads(json.dumps([['--','bH','BOD','Y\r\n'],4,0])))
check('offset-progress fixture 1', json.loads(json.dumps(solve({'segments':['A','BC'],'budgets':[1,0,1,1,1]}))), json.loads(json.dumps([['A','','B','C',''],2,0])))
check('offset-progress fixture 2', json.loads(json.dumps(solve({'segments':['','A','','BC',''],'budgets':[0,2,1]}))), json.loads(json.dumps([['','AB','C'],5,0])))
check('offset-progress fixture 3', json.loads(json.dumps(solve({'segments':[],'budgets':[0,1]}))), json.loads(json.dumps([['',''],0,0])))
check('offset-progress fixture 4', json.loads(json.dumps(solve({'segments':['ABCDE'],'budgets':[2,1]}))), json.loads(json.dumps([['AB','C'],0,3])))
check('offset-progress fixture 5', json.loads(json.dumps(solve({'segments':["p"*N,'X'],'budgets':[N,1]}))), json.loads(json.dumps([["p"*N,'X'],2,0])))
check('offset-progress fixture 6', json.loads(json.dumps(solve({'segments':['AB','CDE'],'budgets':[4]}))), json.loads(json.dumps([['ABCD'],1,2])))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| offset-progress fixture 0 | [['--', 'bH', 'BOD', 'Y\r\n'], 4, 0] | [['--', 'bH', 'BOD', 'Y\r\n'], 4, 0] | Passed |
| offset-progress fixture 1 | [['A', '', 'B', 'C', ''], 2, 0] | [['A', '', 'B', 'C', ''], 2, 0] | Passed |
| offset-progress fixture 2 | [['', 'AB', 'C'], 5, 0] | [['', 'AB', 'C'], 5, 0] | Passed |
| offset-progress fixture 3 | [['', ''], 0, 0] | [['', ''], 0, 0] | Passed |
| offset-progress fixture 4 | [['AB', 'C'], 0, 4] | [['AB', 'C'], 0, 3] | Failed |
| offset-progress fixture 5 | [['p', 'X'], 2, 0] | [['p', 'X'], 2, 0] | Passed |
| offset-progress fixture 6 | [['ABCD'], 1, 2] | [['ABCD'], 1, 2] | Passed |
SHA-256 / b7337e7e0d05d86789474e1ffd984746bdcd70996169db72640eb8fe95f02072
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
segments=x['segments']
index=0
offset=0
out=[]
for budget in x['budgets']:
sent=''
while index<len(segments):
segment=segments[index]
if offset>=len(segment):
index+=1
offset=0
continue
if budget==0: break
amount=min(budget,len(segment)-offset)
sent+=segment[offset:offset+amount]
offset+=amount
budget-=amount
out.append(sent)
return [out,index,offset]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('offset-progress fixture 0', json.loads(json.dumps(solve({'segments':['--b','H','BODY','\r\n'],'budgets':[2,2,3,3]}))), json.loads(json.dumps([['--','bH','BOD','Y\r\n'],4,0])))
check('offset-progress fixture 1', json.loads(json.dumps(solve({'segments':['A','BC'],'budgets':[1,0,1,1,1]}))), json.loads(json.dumps([['A','','B','C',''],2,0])))
check('offset-progress fixture 2', json.loads(json.dumps(solve({'segments':['','A','','BC',''],'budgets':[0,2,1]}))), json.loads(json.dumps([['','AB','C'],5,0])))
check('offset-progress fixture 3', json.loads(json.dumps(solve({'segments':[],'budgets':[0,1]}))), json.loads(json.dumps([['',''],0,0])))
check('offset-progress fixture 4', json.loads(json.dumps(solve({'segments':['ABCDE'],'budgets':[2,1]}))), json.loads(json.dumps([['AB','C'],0,3])))
check('offset-progress fixture 5', json.loads(json.dumps(solve({'segments':["p"*N,'X'],'budgets':[N,1]}))), json.loads(json.dumps([["p"*N,'X'],2,0])))
check('offset-progress fixture 6', json.loads(json.dumps(solve({'segments':['AB','CDE'],'budgets':[4]}))), json.loads(json.dumps([['ABCD'],1,2])))
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| offset-progress fixture 0 | [['--', 'bH', 'BOD', 'Y\r\n'], 4, 0] | [['--', 'bH', 'BOD', 'Y\r\n'], 4, 0] | Passed |
| offset-progress fixture 1 | [['A', '', 'B', 'C', ''], 2, 0] | [['A', '', 'B', 'C', ''], 2, 0] | Passed |
| offset-progress fixture 2 | [['', 'AB', 'C'], 5, 0] | [['', 'AB', 'C'], 5, 0] | Passed |
| offset-progress fixture 3 | [['', ''], 0, 0] | [['', ''], 0, 0] | Passed |
| offset-progress fixture 4 | [['AB', 'C'], 0, 3] | [['AB', 'C'], 0, 3] | Passed |
| offset-progress fixture 5 | [['p', 'X'], 2, 0] | [['p', 'X'], 2, 0] | Passed |
| offset-progress fixture 6 | [['ABCD'], 1, 2] | [['ABCD'], 1, 2] | Passed |
SHA-256 / 90b44ffbc96f9b2307f7dad6f0bab59e25bf93bd6aebf482b6a41498dce6f587
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:41:22.662327+00:00.
Case digest / 09313e7d5de7f8ffa0af45ec7fce58c3bae75097aeaac91ecc5b1f427d8c8f0d