FAILURE MAP
← Case archive

FA-27176 / HTTP ranges / Open access

A multipart sender resumes framing and payload segments across transport credit windows: each transport window retains bytes emitted from all reached components · case 01

A multipart sender resumes framing and payload segments across transport credit windows: each transport window retains bytes emitted from all reached components.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The multipart-write-cursor-window-output 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 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=(sent if offset else '')+segment[offset:offset+amount] offset+=amount 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
            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('window-output 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('window-output 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('window-output fixture 2', json.loads(json.dumps(solve({'segments':['','A','','BC',''],'budgets':[0,2,1]}))), json.loads(json.dumps([['','AB','C'],5,0])))
check('window-output fixture 3', json.loads(json.dumps(solve({'segments':[],'budgets':[0,1]}))), json.loads(json.dumps([['',''],0,0])))
check('window-output fixture 4', json.loads(json.dumps(solve({'segments':['ABCDE'],'budgets':[2,1]}))), json.loads(json.dumps([['AB','C'],0,3])))
check('window-output fixture 5', json.loads(json.dumps(solve({'segments':["p"*N,'X'],'budgets':[N,1]}))), json.loads(json.dumps([["p"*N,'X'],2,0])))
check('window-output 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 fixtureActualExpectedOutcome
window-output fixture 0[['--', 'H', 'BOD', '\r\n'], 4, 0][['--', 'bH', 'BOD', 'Y\r\n'], 4, 0]Failed
window-output fixture 1[['A', '', 'B', 'C', ''], 2, 0][['A', '', 'B', 'C', ''], 2, 0]Passed
window-output fixture 2[['', 'B', 'C'], 5, 0][['', 'AB', 'C'], 5, 0]Failed
window-output fixture 3[['', ''], 0, 0][['', ''], 0, 0]Passed
window-output fixture 4[['AB', 'C'], 0, 3][['AB', 'C'], 0, 3]Passed
window-output fixture 5[['p', 'X'], 2, 0][['p', 'X'], 2, 0]Passed
window-output fixture 6[['CD'], 1, 2][['ABCD'], 1, 2]Failed

SHA-256 / a723695c93df3d3be8de1c401195c022576fc91b71b9bab9c43f7d76f47fb390

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=(sent if offset else '')+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('window-output 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('window-output 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('window-output fixture 2', json.loads(json.dumps(solve({'segments':['','A','','BC',''],'budgets':[0,2,1]}))), json.loads(json.dumps([['','AB','C'],5,0])))
check('window-output fixture 3', json.loads(json.dumps(solve({'segments':[],'budgets':[0,1]}))), json.loads(json.dumps([['',''],0,0])))
check('window-output fixture 4', json.loads(json.dumps(solve({'segments':['ABCDE'],'budgets':[2,1]}))), json.loads(json.dumps([['AB','C'],0,3])))
check('window-output fixture 5', json.loads(json.dumps(solve({'segments':["p"*N,'X'],'budgets':[N,1]}))), json.loads(json.dumps([["p"*N,'X'],2,0])))
check('window-output 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 fixtureActualExpectedOutcome
window-output fixture 0[['--', 'H', 'BOD', '\r\n'], 4, 0][['--', 'bH', 'BOD', 'Y\r\n'], 4, 0]Failed
window-output fixture 1[['A', '', 'B', 'C', ''], 2, 0][['A', '', 'B', 'C', ''], 2, 0]Passed
window-output fixture 2[['', 'B', 'C'], 5, 0][['', 'AB', 'C'], 5, 0]Failed
window-output fixture 3[['', ''], 0, 0][['', ''], 0, 0]Passed
window-output fixture 4[['AB', 'C'], 0, 3][['AB', 'C'], 0, 3]Passed
window-output fixture 5[['p', 'X'], 2, 0][['p', 'X'], 2, 0]Passed
window-output fixture 6[['CD'], 1, 2][['ABCD'], 1, 2]Failed

SHA-256 / 529c95a08d38721cc5042175eedd90671815f13be8968de872e7945457a258e0

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('window-output 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('window-output 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('window-output fixture 2', json.loads(json.dumps(solve({'segments':['','A','','BC',''],'budgets':[0,2,1]}))), json.loads(json.dumps([['','AB','C'],5,0])))
check('window-output fixture 3', json.loads(json.dumps(solve({'segments':[],'budgets':[0,1]}))), json.loads(json.dumps([['',''],0,0])))
check('window-output fixture 4', json.loads(json.dumps(solve({'segments':['ABCDE'],'budgets':[2,1]}))), json.loads(json.dumps([['AB','C'],0,3])))
check('window-output fixture 5', json.loads(json.dumps(solve({'segments':["p"*N,'X'],'budgets':[N,1]}))), json.loads(json.dumps([["p"*N,'X'],2,0])))
check('window-output 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 fixtureActualExpectedOutcome
window-output fixture 0[['--', 'bH', 'BOD', 'Y\r\n'], 4, 0][['--', 'bH', 'BOD', 'Y\r\n'], 4, 0]Passed
window-output fixture 1[['A', '', 'B', 'C', ''], 2, 0][['A', '', 'B', 'C', ''], 2, 0]Passed
window-output fixture 2[['', 'AB', 'C'], 5, 0][['', 'AB', 'C'], 5, 0]Passed
window-output fixture 3[['', ''], 0, 0][['', ''], 0, 0]Passed
window-output fixture 4[['AB', 'C'], 0, 3][['AB', 'C'], 0, 3]Passed
window-output fixture 5[['p', 'X'], 2, 0][['p', 'X'], 2, 0]Passed
window-output fixture 6[['ABCD'], 1, 2][['ABCD'], 1, 2]Passed

SHA-256 / 5afe48eede3b5e5af500c35d4546b4e3548fa52b0c0a93df9f18225a72a720a2

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.744891+00:00.

Case digest / 93d0e8a01a31ce7ff5953555a6def1f018661de1bf1140c48438e1ee852a0e2a