FAILURE MAP
← Case archive

FA-24601 / Client state / Open access

Client worker task handoff: Unknown result no settlement · case 01

Unknown result no settlement.

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

ROOT CAUSE

The unknown-result-no-settlement client decision evaluates `next(iter(dict(jobs).values()),None)` instead of `None if result_id not in dict(jobs) else dict(jobs)[result_id]`.

VERIFIED REPAIR

Apply the modeled unknown-result-no-settlement rule: `None if result_id not in dict(jobs) else dict(jobs)[result_id]`.

Unsuccessful approach: The partial repair `dict(jobs).get(result_id) or None` still violates the explicit fixture contract.

Case contract

A UI worker client binds replies to both a pending job ID and worker instance. Transfer detaches only listed buffers from the main thread, unknown replies settle nothing, and unmount rejects every still-pending job. Operation unknown-result-no-settlement has the six explicit input/output oracles below.

Why this case matters

An offline client lifecycle model that isolates a state-management defect without DOM rendering or network services.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(operation, s):
    jobs, result_id, worker, source_worker, cancelled, buffers, transferred, mounted = s
    if operation == 'result-matches-pending-job':
        return result_id in dict(jobs) and result_id not in cancelled
    if operation == 'worker-instance-result-owner':
        return worker==source_worker and mounted
    if operation == 'result-removes-exact-job':
        return [(k,v) for k,v in jobs if k!=result_id]
    if operation == 'transferred-buffer-detachment':
        return [b for b in buffers if b not in transferred]
    if operation == 'unknown-result-no-settlement':
        return next(iter(dict(jobs).values()),None)
    if operation == 'cancelled-job-pruning':
        return [(k,v) for k,v in jobs if k not in cancelled]
    if operation == 'termination-rejects-pending':
        return [k for k,v in jobs] if not mounted else []
    if operation == 'transfer-list-valid-intersection':
        return [b for b in buffers if b in transferred]
    if operation == 'remaining-worker-load':
        return len(jobs)-int(result_id in dict(jobs))
    if operation == 'main-thread-readable-buffer-count':
        return len([b for b in buffers if b not in transferred])
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('result-matches-pending-job scenario 1', solve('result-matches-pending-job', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), True)
check('result-matches-pending-job scenario 2', solve('result-matches-pending-job', ([], 'a','w1','w1',[],[],[],True)), False)
check('result-matches-pending-job scenario 3', solve('result-matches-pending-job', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), True)
check('result-matches-pending-job scenario 4', solve('result-matches-pending-job', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), False)
check('result-matches-pending-job scenario 5', solve('result-matches-pending-job', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), True)
check('result-matches-pending-job scenario 6', solve('result-matches-pending-job', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), False)
check('worker-instance-result-owner scenario 1', solve('worker-instance-result-owner', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), True)
check('worker-instance-result-owner scenario 2', solve('worker-instance-result-owner', ([], 'a','w1','w1',[],[],[],True)), True)
check('worker-instance-result-owner scenario 3', solve('worker-instance-result-owner', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), False)
check('worker-instance-result-owner scenario 4', solve('worker-instance-result-owner', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), True)
check('worker-instance-result-owner scenario 5', solve('worker-instance-result-owner', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), False)
check('worker-instance-result-owner scenario 6', solve('worker-instance-result-owner', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), True)
check('result-removes-exact-job scenario 1', solve('result-removes-exact-job', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), [('a',N)])
check('result-removes-exact-job scenario 2', solve('result-removes-exact-job', ([], 'a','w1','w1',[],[],[],True)), [])
check('result-removes-exact-job scenario 3', solve('result-removes-exact-job', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [])
check('result-removes-exact-job scenario 4', solve('result-removes-exact-job', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [('b',3)])
check('result-removes-exact-job scenario 5', solve('result-removes-exact-job', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), [])
check('result-removes-exact-job scenario 6', solve('result-removes-exact-job', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), [('a',2),('b',3)])
check('transferred-buffer-detachment scenario 1', solve('transferred-buffer-detachment', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), ['buf2'])
check('transferred-buffer-detachment scenario 2', solve('transferred-buffer-detachment', ([], 'a','w1','w1',[],[],[],True)), [])
check('transferred-buffer-detachment scenario 3', solve('transferred-buffer-detachment', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), ['buf1'])
check('transferred-buffer-detachment scenario 4', solve('transferred-buffer-detachment', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [])
check('transferred-buffer-detachment scenario 5', solve('transferred-buffer-detachment', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), ['buf1'])
check('transferred-buffer-detachment scenario 6', solve('transferred-buffer-detachment', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), ['buf1'])
check('unknown-result-no-settlement scenario 1', solve('unknown-result-no-settlement', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), 2)
check('unknown-result-no-settlement scenario 2', solve('unknown-result-no-settlement', ([], 'a','w1','w1',[],[],[],True)), None)
check('unknown-result-no-settlement scenario 3', solve('unknown-result-no-settlement', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), 0)
check('unknown-result-no-settlement scenario 4', solve('unknown-result-no-settlement', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), 2)
check('unknown-result-no-settlement scenario 5', solve('unknown-result-no-settlement', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), N)
check('unknown-result-no-settlement scenario 6', solve('unknown-result-no-settlement', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), None)
check('cancelled-job-pruning scenario 1', solve('cancelled-job-pruning', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), [('a',N),('b',2)])
check('cancelled-job-pruning scenario 2', solve('cancelled-job-pruning', ([], 'a','w1','w1',[],[],[],True)), [])
check('cancelled-job-pruning scenario 3', solve('cancelled-job-pruning', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [('a',0)])
check('cancelled-job-pruning scenario 4', solve('cancelled-job-pruning', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [('b',3)])
check('cancelled-job-pruning scenario 5', solve('cancelled-job-pruning', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), [('a',N)])
check('cancelled-job-pruning scenario 6', solve('cancelled-job-pruning', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), [('a',2),('b',3)])
check('termination-rejects-pending scenario 1', solve('termination-rejects-pending', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), [])
check('termination-rejects-pending scenario 2', solve('termination-rejects-pending', ([], 'a','w1','w1',[],[],[],True)), [])
check('termination-rejects-pending scenario 3', solve('termination-rejects-pending', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [])
check('termination-rejects-pending scenario 4', solve('termination-rejects-pending', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [])
check('termination-rejects-pending scenario 5', solve('termination-rejects-pending', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), ['a'])
check('termination-rejects-pending scenario 6', solve('termination-rejects-pending', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), [])
check('transfer-list-valid-intersection scenario 1', solve('transfer-list-valid-intersection', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), ['buf1'])
check('transfer-list-valid-intersection scenario 2', solve('transfer-list-valid-intersection', ([], 'a','w1','w1',[],[],[],True)), [])
check('transfer-list-valid-intersection scenario 3', solve('transfer-list-valid-intersection', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [])
check('transfer-list-valid-intersection scenario 4', solve('transfer-list-valid-intersection', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), ['buf1'])
check('transfer-list-valid-intersection scenario 5', solve('transfer-list-valid-intersection', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), [])
check('transfer-list-valid-intersection scenario 6', solve('transfer-list-valid-intersection', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), ['buf2'])
check('remaining-worker-load scenario 1', solve('remaining-worker-load', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), 1)
check('remaining-worker-load scenario 2', solve('remaining-worker-load', ([], 'a','w1','w1',[],[],[],True)), 0)
check('remaining-worker-load scenario 3', solve('remaining-worker-load', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), 0)
check('remaining-worker-load scenario 4', solve('remaining-worker-load', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), 1)
check('remaining-worker-load scenario 5', solve('remaining-worker-load', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), 0)
check('remaining-worker-load scenario 6', solve('remaining-worker-load', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), 2)
check('main-thread-readable-buffer-count scenario 1', solve('main-thread-readable-buffer-count', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), 1)
check('main-thread-readable-buffer-count scenario 2', solve('main-thread-readable-buffer-count', ([], 'a','w1','w1',[],[],[],True)), 0)
check('main-thread-readable-buffer-count scenario 3', solve('main-thread-readable-buffer-count', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), 1)
check('main-thread-readable-buffer-count scenario 4', solve('main-thread-readable-buffer-count', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), 0)
check('main-thread-readable-buffer-count scenario 5', solve('main-thread-readable-buffer-count', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), 1)
check('main-thread-readable-buffer-count scenario 6', solve('main-thread-readable-buffer-count', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), 1)
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
result-matches-pending-job scenario 1TrueTruePassed
result-matches-pending-job scenario 2FalseFalsePassed
result-matches-pending-job scenario 3TrueTruePassed
result-matches-pending-job scenario 4FalseFalsePassed
result-matches-pending-job scenario 5TrueTruePassed
result-matches-pending-job scenario 6FalseFalsePassed
worker-instance-result-owner scenario 1TrueTruePassed
worker-instance-result-owner scenario 2TrueTruePassed
worker-instance-result-owner scenario 3FalseFalsePassed
worker-instance-result-owner scenario 4TrueTruePassed
worker-instance-result-owner scenario 5FalseFalsePassed
worker-instance-result-owner scenario 6TrueTruePassed
result-removes-exact-job scenario 1[['a', 1]][['a', 1]]Passed
result-removes-exact-job scenario 2[][]Passed
result-removes-exact-job scenario 3[][]Passed
result-removes-exact-job scenario 4[['b', 3]][['b', 3]]Passed
result-removes-exact-job scenario 5[][]Passed
result-removes-exact-job scenario 6[['a', 2], ['b', 3]][['a', 2], ['b', 3]]Passed
transferred-buffer-detachment scenario 1['buf2']['buf2']Passed
transferred-buffer-detachment scenario 2[][]Passed
transferred-buffer-detachment scenario 3['buf1']['buf1']Passed
transferred-buffer-detachment scenario 4[][]Passed
transferred-buffer-detachment scenario 5['buf1']['buf1']Passed
transferred-buffer-detachment scenario 6['buf1']['buf1']Passed
unknown-result-no-settlement scenario 112Failed
unknown-result-no-settlement scenario 2NoneNonePassed
unknown-result-no-settlement scenario 300Passed
unknown-result-no-settlement scenario 422Passed
unknown-result-no-settlement scenario 511Passed
unknown-result-no-settlement scenario 62NoneFailed
cancelled-job-pruning scenario 1[['a', 1], ['b', 2]][['a', 1], ['b', 2]]Passed
cancelled-job-pruning scenario 2[][]Passed
cancelled-job-pruning scenario 3[['a', 0]][['a', 0]]Passed
cancelled-job-pruning scenario 4[['b', 3]][['b', 3]]Passed
cancelled-job-pruning scenario 5[['a', 1]][['a', 1]]Passed
cancelled-job-pruning scenario 6[['a', 2], ['b', 3]][['a', 2], ['b', 3]]Passed
termination-rejects-pending scenario 1[][]Passed
termination-rejects-pending scenario 2[][]Passed
termination-rejects-pending scenario 3[][]Passed
termination-rejects-pending scenario 4[][]Passed
termination-rejects-pending scenario 5['a']['a']Passed
termination-rejects-pending scenario 6[][]Passed
transfer-list-valid-intersection scenario 1['buf1']['buf1']Passed
transfer-list-valid-intersection scenario 2[][]Passed
transfer-list-valid-intersection scenario 3[][]Passed
transfer-list-valid-intersection scenario 4['buf1']['buf1']Passed
transfer-list-valid-intersection scenario 5[][]Passed
transfer-list-valid-intersection scenario 6['buf2']['buf2']Passed
remaining-worker-load scenario 111Passed
remaining-worker-load scenario 200Passed
remaining-worker-load scenario 300Passed
remaining-worker-load scenario 411Passed
remaining-worker-load scenario 500Passed
remaining-worker-load scenario 622Passed
main-thread-readable-buffer-count scenario 111Passed
main-thread-readable-buffer-count scenario 200Passed
main-thread-readable-buffer-count scenario 311Passed
main-thread-readable-buffer-count scenario 400Passed
main-thread-readable-buffer-count scenario 511Passed
main-thread-readable-buffer-count scenario 611Passed

SHA-256 / e61f59931d7a3660f97aa55bfbb17359f7134e3848144aea57116ee6466c3b5d

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(operation, s):
    jobs, result_id, worker, source_worker, cancelled, buffers, transferred, mounted = s
    if operation == 'result-matches-pending-job':
        return result_id in dict(jobs) and result_id not in cancelled
    if operation == 'worker-instance-result-owner':
        return worker==source_worker and mounted
    if operation == 'result-removes-exact-job':
        return [(k,v) for k,v in jobs if k!=result_id]
    if operation == 'transferred-buffer-detachment':
        return [b for b in buffers if b not in transferred]
    if operation == 'unknown-result-no-settlement':
        return dict(jobs).get(result_id) or None
    if operation == 'cancelled-job-pruning':
        return [(k,v) for k,v in jobs if k not in cancelled]
    if operation == 'termination-rejects-pending':
        return [k for k,v in jobs] if not mounted else []
    if operation == 'transfer-list-valid-intersection':
        return [b for b in buffers if b in transferred]
    if operation == 'remaining-worker-load':
        return len(jobs)-int(result_id in dict(jobs))
    if operation == 'main-thread-readable-buffer-count':
        return len([b for b in buffers if b not in transferred])
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('result-matches-pending-job scenario 1', solve('result-matches-pending-job', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), True)
check('result-matches-pending-job scenario 2', solve('result-matches-pending-job', ([], 'a','w1','w1',[],[],[],True)), False)
check('result-matches-pending-job scenario 3', solve('result-matches-pending-job', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), True)
check('result-matches-pending-job scenario 4', solve('result-matches-pending-job', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), False)
check('result-matches-pending-job scenario 5', solve('result-matches-pending-job', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), True)
check('result-matches-pending-job scenario 6', solve('result-matches-pending-job', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), False)
check('worker-instance-result-owner scenario 1', solve('worker-instance-result-owner', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), True)
check('worker-instance-result-owner scenario 2', solve('worker-instance-result-owner', ([], 'a','w1','w1',[],[],[],True)), True)
check('worker-instance-result-owner scenario 3', solve('worker-instance-result-owner', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), False)
check('worker-instance-result-owner scenario 4', solve('worker-instance-result-owner', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), True)
check('worker-instance-result-owner scenario 5', solve('worker-instance-result-owner', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), False)
check('worker-instance-result-owner scenario 6', solve('worker-instance-result-owner', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), True)
check('result-removes-exact-job scenario 1', solve('result-removes-exact-job', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), [('a',N)])
check('result-removes-exact-job scenario 2', solve('result-removes-exact-job', ([], 'a','w1','w1',[],[],[],True)), [])
check('result-removes-exact-job scenario 3', solve('result-removes-exact-job', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [])
check('result-removes-exact-job scenario 4', solve('result-removes-exact-job', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [('b',3)])
check('result-removes-exact-job scenario 5', solve('result-removes-exact-job', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), [])
check('result-removes-exact-job scenario 6', solve('result-removes-exact-job', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), [('a',2),('b',3)])
check('transferred-buffer-detachment scenario 1', solve('transferred-buffer-detachment', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), ['buf2'])
check('transferred-buffer-detachment scenario 2', solve('transferred-buffer-detachment', ([], 'a','w1','w1',[],[],[],True)), [])
check('transferred-buffer-detachment scenario 3', solve('transferred-buffer-detachment', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), ['buf1'])
check('transferred-buffer-detachment scenario 4', solve('transferred-buffer-detachment', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [])
check('transferred-buffer-detachment scenario 5', solve('transferred-buffer-detachment', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), ['buf1'])
check('transferred-buffer-detachment scenario 6', solve('transferred-buffer-detachment', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), ['buf1'])
check('unknown-result-no-settlement scenario 1', solve('unknown-result-no-settlement', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), 2)
check('unknown-result-no-settlement scenario 2', solve('unknown-result-no-settlement', ([], 'a','w1','w1',[],[],[],True)), None)
check('unknown-result-no-settlement scenario 3', solve('unknown-result-no-settlement', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), 0)
check('unknown-result-no-settlement scenario 4', solve('unknown-result-no-settlement', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), 2)
check('unknown-result-no-settlement scenario 5', solve('unknown-result-no-settlement', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), N)
check('unknown-result-no-settlement scenario 6', solve('unknown-result-no-settlement', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), None)
check('cancelled-job-pruning scenario 1', solve('cancelled-job-pruning', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), [('a',N),('b',2)])
check('cancelled-job-pruning scenario 2', solve('cancelled-job-pruning', ([], 'a','w1','w1',[],[],[],True)), [])
check('cancelled-job-pruning scenario 3', solve('cancelled-job-pruning', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [('a',0)])
check('cancelled-job-pruning scenario 4', solve('cancelled-job-pruning', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [('b',3)])
check('cancelled-job-pruning scenario 5', solve('cancelled-job-pruning', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), [('a',N)])
check('cancelled-job-pruning scenario 6', solve('cancelled-job-pruning', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), [('a',2),('b',3)])
check('termination-rejects-pending scenario 1', solve('termination-rejects-pending', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), [])
check('termination-rejects-pending scenario 2', solve('termination-rejects-pending', ([], 'a','w1','w1',[],[],[],True)), [])
check('termination-rejects-pending scenario 3', solve('termination-rejects-pending', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [])
check('termination-rejects-pending scenario 4', solve('termination-rejects-pending', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [])
check('termination-rejects-pending scenario 5', solve('termination-rejects-pending', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), ['a'])
check('termination-rejects-pending scenario 6', solve('termination-rejects-pending', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), [])
check('transfer-list-valid-intersection scenario 1', solve('transfer-list-valid-intersection', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), ['buf1'])
check('transfer-list-valid-intersection scenario 2', solve('transfer-list-valid-intersection', ([], 'a','w1','w1',[],[],[],True)), [])
check('transfer-list-valid-intersection scenario 3', solve('transfer-list-valid-intersection', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [])
check('transfer-list-valid-intersection scenario 4', solve('transfer-list-valid-intersection', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), ['buf1'])
check('transfer-list-valid-intersection scenario 5', solve('transfer-list-valid-intersection', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), [])
check('transfer-list-valid-intersection scenario 6', solve('transfer-list-valid-intersection', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), ['buf2'])
check('remaining-worker-load scenario 1', solve('remaining-worker-load', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), 1)
check('remaining-worker-load scenario 2', solve('remaining-worker-load', ([], 'a','w1','w1',[],[],[],True)), 0)
check('remaining-worker-load scenario 3', solve('remaining-worker-load', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), 0)
check('remaining-worker-load scenario 4', solve('remaining-worker-load', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), 1)
check('remaining-worker-load scenario 5', solve('remaining-worker-load', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), 0)
check('remaining-worker-load scenario 6', solve('remaining-worker-load', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), 2)
check('main-thread-readable-buffer-count scenario 1', solve('main-thread-readable-buffer-count', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), 1)
check('main-thread-readable-buffer-count scenario 2', solve('main-thread-readable-buffer-count', ([], 'a','w1','w1',[],[],[],True)), 0)
check('main-thread-readable-buffer-count scenario 3', solve('main-thread-readable-buffer-count', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), 1)
check('main-thread-readable-buffer-count scenario 4', solve('main-thread-readable-buffer-count', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), 0)
check('main-thread-readable-buffer-count scenario 5', solve('main-thread-readable-buffer-count', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), 1)
check('main-thread-readable-buffer-count scenario 6', solve('main-thread-readable-buffer-count', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), 1)
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
result-matches-pending-job scenario 1TrueTruePassed
result-matches-pending-job scenario 2FalseFalsePassed
result-matches-pending-job scenario 3TrueTruePassed
result-matches-pending-job scenario 4FalseFalsePassed
result-matches-pending-job scenario 5TrueTruePassed
result-matches-pending-job scenario 6FalseFalsePassed
worker-instance-result-owner scenario 1TrueTruePassed
worker-instance-result-owner scenario 2TrueTruePassed
worker-instance-result-owner scenario 3FalseFalsePassed
worker-instance-result-owner scenario 4TrueTruePassed
worker-instance-result-owner scenario 5FalseFalsePassed
worker-instance-result-owner scenario 6TrueTruePassed
result-removes-exact-job scenario 1[['a', 1]][['a', 1]]Passed
result-removes-exact-job scenario 2[][]Passed
result-removes-exact-job scenario 3[][]Passed
result-removes-exact-job scenario 4[['b', 3]][['b', 3]]Passed
result-removes-exact-job scenario 5[][]Passed
result-removes-exact-job scenario 6[['a', 2], ['b', 3]][['a', 2], ['b', 3]]Passed
transferred-buffer-detachment scenario 1['buf2']['buf2']Passed
transferred-buffer-detachment scenario 2[][]Passed
transferred-buffer-detachment scenario 3['buf1']['buf1']Passed
transferred-buffer-detachment scenario 4[][]Passed
transferred-buffer-detachment scenario 5['buf1']['buf1']Passed
transferred-buffer-detachment scenario 6['buf1']['buf1']Passed
unknown-result-no-settlement scenario 122Passed
unknown-result-no-settlement scenario 2NoneNonePassed
unknown-result-no-settlement scenario 3None0Failed
unknown-result-no-settlement scenario 422Passed
unknown-result-no-settlement scenario 511Passed
unknown-result-no-settlement scenario 6NoneNonePassed
cancelled-job-pruning scenario 1[['a', 1], ['b', 2]][['a', 1], ['b', 2]]Passed
cancelled-job-pruning scenario 2[][]Passed
cancelled-job-pruning scenario 3[['a', 0]][['a', 0]]Passed
cancelled-job-pruning scenario 4[['b', 3]][['b', 3]]Passed
cancelled-job-pruning scenario 5[['a', 1]][['a', 1]]Passed
cancelled-job-pruning scenario 6[['a', 2], ['b', 3]][['a', 2], ['b', 3]]Passed
termination-rejects-pending scenario 1[][]Passed
termination-rejects-pending scenario 2[][]Passed
termination-rejects-pending scenario 3[][]Passed
termination-rejects-pending scenario 4[][]Passed
termination-rejects-pending scenario 5['a']['a']Passed
termination-rejects-pending scenario 6[][]Passed
transfer-list-valid-intersection scenario 1['buf1']['buf1']Passed
transfer-list-valid-intersection scenario 2[][]Passed
transfer-list-valid-intersection scenario 3[][]Passed
transfer-list-valid-intersection scenario 4['buf1']['buf1']Passed
transfer-list-valid-intersection scenario 5[][]Passed
transfer-list-valid-intersection scenario 6['buf2']['buf2']Passed
remaining-worker-load scenario 111Passed
remaining-worker-load scenario 200Passed
remaining-worker-load scenario 300Passed
remaining-worker-load scenario 411Passed
remaining-worker-load scenario 500Passed
remaining-worker-load scenario 622Passed
main-thread-readable-buffer-count scenario 111Passed
main-thread-readable-buffer-count scenario 200Passed
main-thread-readable-buffer-count scenario 311Passed
main-thread-readable-buffer-count scenario 400Passed
main-thread-readable-buffer-count scenario 511Passed
main-thread-readable-buffer-count scenario 611Passed

SHA-256 / b9ddc954c64eee09650be2f6069381ed26bddeda559e81ff3d2c8b8a12ddceed

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(operation, s):
    jobs, result_id, worker, source_worker, cancelled, buffers, transferred, mounted = s
    if operation == 'result-matches-pending-job':
        return result_id in dict(jobs) and result_id not in cancelled
    if operation == 'worker-instance-result-owner':
        return worker==source_worker and mounted
    if operation == 'result-removes-exact-job':
        return [(k,v) for k,v in jobs if k!=result_id]
    if operation == 'transferred-buffer-detachment':
        return [b for b in buffers if b not in transferred]
    if operation == 'unknown-result-no-settlement':
        return None if result_id not in dict(jobs) else dict(jobs)[result_id]
    if operation == 'cancelled-job-pruning':
        return [(k,v) for k,v in jobs if k not in cancelled]
    if operation == 'termination-rejects-pending':
        return [k for k,v in jobs] if not mounted else []
    if operation == 'transfer-list-valid-intersection':
        return [b for b in buffers if b in transferred]
    if operation == 'remaining-worker-load':
        return len(jobs)-int(result_id in dict(jobs))
    if operation == 'main-thread-readable-buffer-count':
        return len([b for b in buffers if b not in transferred])
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('result-matches-pending-job scenario 1', solve('result-matches-pending-job', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), True)
check('result-matches-pending-job scenario 2', solve('result-matches-pending-job', ([], 'a','w1','w1',[],[],[],True)), False)
check('result-matches-pending-job scenario 3', solve('result-matches-pending-job', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), True)
check('result-matches-pending-job scenario 4', solve('result-matches-pending-job', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), False)
check('result-matches-pending-job scenario 5', solve('result-matches-pending-job', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), True)
check('result-matches-pending-job scenario 6', solve('result-matches-pending-job', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), False)
check('worker-instance-result-owner scenario 1', solve('worker-instance-result-owner', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), True)
check('worker-instance-result-owner scenario 2', solve('worker-instance-result-owner', ([], 'a','w1','w1',[],[],[],True)), True)
check('worker-instance-result-owner scenario 3', solve('worker-instance-result-owner', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), False)
check('worker-instance-result-owner scenario 4', solve('worker-instance-result-owner', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), True)
check('worker-instance-result-owner scenario 5', solve('worker-instance-result-owner', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), False)
check('worker-instance-result-owner scenario 6', solve('worker-instance-result-owner', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), True)
check('result-removes-exact-job scenario 1', solve('result-removes-exact-job', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), [('a',N)])
check('result-removes-exact-job scenario 2', solve('result-removes-exact-job', ([], 'a','w1','w1',[],[],[],True)), [])
check('result-removes-exact-job scenario 3', solve('result-removes-exact-job', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [])
check('result-removes-exact-job scenario 4', solve('result-removes-exact-job', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [('b',3)])
check('result-removes-exact-job scenario 5', solve('result-removes-exact-job', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), [])
check('result-removes-exact-job scenario 6', solve('result-removes-exact-job', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), [('a',2),('b',3)])
check('transferred-buffer-detachment scenario 1', solve('transferred-buffer-detachment', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), ['buf2'])
check('transferred-buffer-detachment scenario 2', solve('transferred-buffer-detachment', ([], 'a','w1','w1',[],[],[],True)), [])
check('transferred-buffer-detachment scenario 3', solve('transferred-buffer-detachment', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), ['buf1'])
check('transferred-buffer-detachment scenario 4', solve('transferred-buffer-detachment', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [])
check('transferred-buffer-detachment scenario 5', solve('transferred-buffer-detachment', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), ['buf1'])
check('transferred-buffer-detachment scenario 6', solve('transferred-buffer-detachment', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), ['buf1'])
check('unknown-result-no-settlement scenario 1', solve('unknown-result-no-settlement', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), 2)
check('unknown-result-no-settlement scenario 2', solve('unknown-result-no-settlement', ([], 'a','w1','w1',[],[],[],True)), None)
check('unknown-result-no-settlement scenario 3', solve('unknown-result-no-settlement', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), 0)
check('unknown-result-no-settlement scenario 4', solve('unknown-result-no-settlement', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), 2)
check('unknown-result-no-settlement scenario 5', solve('unknown-result-no-settlement', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), N)
check('unknown-result-no-settlement scenario 6', solve('unknown-result-no-settlement', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), None)
check('cancelled-job-pruning scenario 1', solve('cancelled-job-pruning', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), [('a',N),('b',2)])
check('cancelled-job-pruning scenario 2', solve('cancelled-job-pruning', ([], 'a','w1','w1',[],[],[],True)), [])
check('cancelled-job-pruning scenario 3', solve('cancelled-job-pruning', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [('a',0)])
check('cancelled-job-pruning scenario 4', solve('cancelled-job-pruning', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [('b',3)])
check('cancelled-job-pruning scenario 5', solve('cancelled-job-pruning', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), [('a',N)])
check('cancelled-job-pruning scenario 6', solve('cancelled-job-pruning', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), [('a',2),('b',3)])
check('termination-rejects-pending scenario 1', solve('termination-rejects-pending', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), [])
check('termination-rejects-pending scenario 2', solve('termination-rejects-pending', ([], 'a','w1','w1',[],[],[],True)), [])
check('termination-rejects-pending scenario 3', solve('termination-rejects-pending', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [])
check('termination-rejects-pending scenario 4', solve('termination-rejects-pending', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), [])
check('termination-rejects-pending scenario 5', solve('termination-rejects-pending', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), ['a'])
check('termination-rejects-pending scenario 6', solve('termination-rejects-pending', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), [])
check('transfer-list-valid-intersection scenario 1', solve('transfer-list-valid-intersection', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), ['buf1'])
check('transfer-list-valid-intersection scenario 2', solve('transfer-list-valid-intersection', ([], 'a','w1','w1',[],[],[],True)), [])
check('transfer-list-valid-intersection scenario 3', solve('transfer-list-valid-intersection', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), [])
check('transfer-list-valid-intersection scenario 4', solve('transfer-list-valid-intersection', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), ['buf1'])
check('transfer-list-valid-intersection scenario 5', solve('transfer-list-valid-intersection', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), [])
check('transfer-list-valid-intersection scenario 6', solve('transfer-list-valid-intersection', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), ['buf2'])
check('remaining-worker-load scenario 1', solve('remaining-worker-load', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), 1)
check('remaining-worker-load scenario 2', solve('remaining-worker-load', ([], 'a','w1','w1',[],[],[],True)), 0)
check('remaining-worker-load scenario 3', solve('remaining-worker-load', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), 0)
check('remaining-worker-load scenario 4', solve('remaining-worker-load', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), 1)
check('remaining-worker-load scenario 5', solve('remaining-worker-load', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), 0)
check('remaining-worker-load scenario 6', solve('remaining-worker-load', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), 2)
check('main-thread-readable-buffer-count scenario 1', solve('main-thread-readable-buffer-count', ([('a',N),('b',2)],'b','w1','w1',[],['buf1','buf2'],['buf1'],True)), 1)
check('main-thread-readable-buffer-count scenario 2', solve('main-thread-readable-buffer-count', ([], 'a','w1','w1',[],[],[],True)), 0)
check('main-thread-readable-buffer-count scenario 3', solve('main-thread-readable-buffer-count', ([('a',0)],'a','w2','w1',[],['buf1'],[],True)), 1)
check('main-thread-readable-buffer-count scenario 4', solve('main-thread-readable-buffer-count', ([('a',2),('b',3)],'a','w1','w1',['a'],['buf1'],['buf1'],True)), 0)
check('main-thread-readable-buffer-count scenario 5', solve('main-thread-readable-buffer-count', ([('a',N)],'a','w1','w1',[],['buf1'],[],False)), 1)
check('main-thread-readable-buffer-count scenario 6', solve('main-thread-readable-buffer-count', ([('a',2),('b',3)],'x','w1','w1',[],['buf1','buf2'],['buf2'],True)), 1)
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
result-matches-pending-job scenario 1TrueTruePassed
result-matches-pending-job scenario 2FalseFalsePassed
result-matches-pending-job scenario 3TrueTruePassed
result-matches-pending-job scenario 4FalseFalsePassed
result-matches-pending-job scenario 5TrueTruePassed
result-matches-pending-job scenario 6FalseFalsePassed
worker-instance-result-owner scenario 1TrueTruePassed
worker-instance-result-owner scenario 2TrueTruePassed
worker-instance-result-owner scenario 3FalseFalsePassed
worker-instance-result-owner scenario 4TrueTruePassed
worker-instance-result-owner scenario 5FalseFalsePassed
worker-instance-result-owner scenario 6TrueTruePassed
result-removes-exact-job scenario 1[['a', 1]][['a', 1]]Passed
result-removes-exact-job scenario 2[][]Passed
result-removes-exact-job scenario 3[][]Passed
result-removes-exact-job scenario 4[['b', 3]][['b', 3]]Passed
result-removes-exact-job scenario 5[][]Passed
result-removes-exact-job scenario 6[['a', 2], ['b', 3]][['a', 2], ['b', 3]]Passed
transferred-buffer-detachment scenario 1['buf2']['buf2']Passed
transferred-buffer-detachment scenario 2[][]Passed
transferred-buffer-detachment scenario 3['buf1']['buf1']Passed
transferred-buffer-detachment scenario 4[][]Passed
transferred-buffer-detachment scenario 5['buf1']['buf1']Passed
transferred-buffer-detachment scenario 6['buf1']['buf1']Passed
unknown-result-no-settlement scenario 122Passed
unknown-result-no-settlement scenario 2NoneNonePassed
unknown-result-no-settlement scenario 300Passed
unknown-result-no-settlement scenario 422Passed
unknown-result-no-settlement scenario 511Passed
unknown-result-no-settlement scenario 6NoneNonePassed
cancelled-job-pruning scenario 1[['a', 1], ['b', 2]][['a', 1], ['b', 2]]Passed
cancelled-job-pruning scenario 2[][]Passed
cancelled-job-pruning scenario 3[['a', 0]][['a', 0]]Passed
cancelled-job-pruning scenario 4[['b', 3]][['b', 3]]Passed
cancelled-job-pruning scenario 5[['a', 1]][['a', 1]]Passed
cancelled-job-pruning scenario 6[['a', 2], ['b', 3]][['a', 2], ['b', 3]]Passed
termination-rejects-pending scenario 1[][]Passed
termination-rejects-pending scenario 2[][]Passed
termination-rejects-pending scenario 3[][]Passed
termination-rejects-pending scenario 4[][]Passed
termination-rejects-pending scenario 5['a']['a']Passed
termination-rejects-pending scenario 6[][]Passed
transfer-list-valid-intersection scenario 1['buf1']['buf1']Passed
transfer-list-valid-intersection scenario 2[][]Passed
transfer-list-valid-intersection scenario 3[][]Passed
transfer-list-valid-intersection scenario 4['buf1']['buf1']Passed
transfer-list-valid-intersection scenario 5[][]Passed
transfer-list-valid-intersection scenario 6['buf2']['buf2']Passed
remaining-worker-load scenario 111Passed
remaining-worker-load scenario 200Passed
remaining-worker-load scenario 300Passed
remaining-worker-load scenario 411Passed
remaining-worker-load scenario 500Passed
remaining-worker-load scenario 622Passed
main-thread-readable-buffer-count scenario 111Passed
main-thread-readable-buffer-count scenario 200Passed
main-thread-readable-buffer-count scenario 311Passed
main-thread-readable-buffer-count scenario 400Passed
main-thread-readable-buffer-count scenario 511Passed
main-thread-readable-buffer-count scenario 611Passed

SHA-256 / 08ab37c7046103aba1c5ed0c93b5ba1d90d4060aeab206bd211c08d020ae4a24

Verification & scope

Only the explicitly specified operations and finite deterministic records are modeled; no browser or framework conformance is claimed. 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:40:59.012322+00:00.

Case digest / 37c5ef8b585639fb72d7eb6de89f098f58ec27e46a3f215a0385a065b7338ebd