FAILURE MAP
← Case archive

FA-41786 / Listener lifecycle / Open access

Fail-fast policy misclassifies every callback error as fatal · case 01

Fail-fast policy misclassifies every callback error as fatal; the returned lifecycle plan violates the stated transition contract.

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

ROOT CAUSE

The fatal decision in the callback-failure listener model is computed as s['error'] is not None, losing a required lifecycle condition.

VERIFIED REPAIR

Compute the fatal decision from the complete contract: s['error']=='fatal'.

Unsuccessful approach: The partial repair uses s['error']=='fatal' or s['failfast']; a retained regression distinguishes it from the full transition.

Case contract

Plan callback failure handling. Recoverable callback errors are collected and sibling callbacks continue unless fail-fast was selected. Fatal failures stop immediately. Cleanup always runs for acquired callback resources. Report an unhandled error once; a configured error listener consumes a recoverable error. A callback return value remains distinct from an exception. Inputs are finite state snapshots, including transitional and stale states; output fields are the exact independent actions/metadata defined by the corrected expression table. Numeric fixture capacities and counts vary with N. Field definitions, each independently computed from the input snapshot: continue = s['error']!='fatal' and not(s['error'] is not None and s['failfast']); cleanup = s['acquired'] and not s['cleanup_done']; report = s['error'] is not None and not s['reported'] and (not s['handler'] or s['error']=='fatal'); collected = list(s['errors'])+([s['error']] if s['error'] is not None else []); handler_call = s['handler'] and s['error']=='recoverable'; value = s['result'] if s['error'] is None else None; remaining = s['siblings'] if s['error']=='fatal' or (s['error'] is not None and s['failfast']) else 0; active = s['active'] and s['error']!='fatal'; handled = s['handler'] and s['error']=='recoverable' and not s['failfast']; fatal = s['error']=='fatal'

Why this case matters

Observer implementations need to preserve this state while subscriptions enter, execute, and leave their lifecycle.

1 / The failure

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

N = 1
observations = []
def solve(s):
    return {
        'continue': s['error']!='fatal' and not(s['error'] is not None and s['failfast']),
        'cleanup': s['acquired'] and not s['cleanup_done'],
        'report': s['error'] is not None and not s['reported'] and (not s['handler'] or s['error']=='fatal'),
        'collected': list(s['errors'])+([s['error']] if s['error'] is not None else []),
        'handler_call': s['handler'] and s['error']=='recoverable',
        'value': s['result'] if s['error'] is None else None,
        'remaining': s['siblings'] if s['error']=='fatal' or (s['error'] is not None and s['failfast']) else 0,
        'active': s['active'] and s['error']!='fatal',
        'handled': s['handler'] and s['error']=='recoverable' and not s['failfast'],
        'fatal': s['error'] is not None,
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 3, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 3, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 3, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 3, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': True, 'cleanup': False, 'report': True, 'collected': ['earlier', 'recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'recoverable', 'failfast': True, 'handler': False, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': None, 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['earlier', 'recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': 'ok', 'errors': [], 'active': False}, {'continue': True, 'cleanup': True, 'report': False, 'collected': [], 'handler_call': False, 'value': 'ok', 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 3, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 3, 'active': False, 'handled': False, 'fatal': True})], 2: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 6, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 6, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 6, 'result': None, 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 6, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 6, 'result': 0, 'errors': ['earlier'], 'active': False}, {'continue': True, 'cleanup': True, 'report': True, 'collected': ['earlier', 'recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': None, 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': 0, 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': True, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 0, 'result': 0, 'errors': [], 'active': False}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 6, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 6, 'active': False, 'handled': False, 'fatal': True})], 3: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 9, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 9, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 9, 'result': 'ok', 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': 'ok', 'errors': [], 'active': False}, {'continue': True, 'cleanup': True, 'report': False, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 9, 'result': 'ok', 'errors': [], 'active': False}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': True, 'siblings': 9, 'result': None, 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 0, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': True}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 9, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True})], 4: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 12, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 12, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 12, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 12, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': 'ok', 'errors': [], 'active': True}, {'continue': True, 'cleanup': False, 'report': False, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': False, 'siblings': 12, 'result': 'ok', 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 12, 'active': False, 'handled': False, 'fatal': True}), ({'error': None, 'failfast': True, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 12, 'result': 'ok', 'errors': [], 'active': True}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': 'ok', 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': True, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 12, 'result': 0, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': 0, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 12, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 12, 'active': False, 'handled': False, 'fatal': True})], 5: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 15, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 15, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 15, 'result': None, 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 15, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': True}, {'continue': True, 'cleanup': True, 'report': False, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': True, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': 'ok', 'errors': ['earlier'], 'active': False}, {'continue': True, 'cleanup': True, 'report': False, 'collected': ['earlier'], 'handler_call': False, 'value': 'ok', 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'recoverable', 'failfast': False, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': True, 'siblings': 15, 'result': 0, 'errors': ['earlier'], 'active': True}, {'continue': True, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 0, 'active': True, 'handled': True, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': True, 'siblings': 15, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 15, 'active': False, 'handled': False, 'fatal': True}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 15, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 15, 'active': False, 'handled': False, 'fatal': True})]}
for i,(state,expected) in enumerate(fixtures[N]):
    check("transition "+str(i), solve(state), expected)
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
transition 0{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': True, 'remaining': 3, 'report': False, 'value': None}{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': False, 'handled': False, 'handler_call': True, 'remaining': 3, 'report': False, 'value': None}Failed
transition 1{'active': False, 'cleanup': True, 'collected': ['fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}{'active': False, 'cleanup': True, 'collected': ['fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}Passed
transition 2{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': True, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}Failed
transition 3{'active': False, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}{'active': False, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}Failed
transition 4{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}Passed
transition 5{'active': False, 'cleanup': True, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': 'ok'}{'active': False, 'cleanup': True, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': 'ok'}Passed
transition 6{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}Passed
transition 7{'active': False, 'cleanup': False, 'collected': ['earlier', 'fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}{'active': False, 'cleanup': False, 'collected': ['earlier', 'fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}Passed

SHA-256 / a5b060e4ecb89c4f7b903f8feeb35b596600428a8c6e4dfdaa18de76b3b1e00f

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(s):
    return {
        'continue': s['error']!='fatal' and not(s['error'] is not None and s['failfast']),
        'cleanup': s['acquired'] and not s['cleanup_done'],
        'report': s['error'] is not None and not s['reported'] and (not s['handler'] or s['error']=='fatal'),
        'collected': list(s['errors'])+([s['error']] if s['error'] is not None else []),
        'handler_call': s['handler'] and s['error']=='recoverable',
        'value': s['result'] if s['error'] is None else None,
        'remaining': s['siblings'] if s['error']=='fatal' or (s['error'] is not None and s['failfast']) else 0,
        'active': s['active'] and s['error']!='fatal',
        'handled': s['handler'] and s['error']=='recoverable' and not s['failfast'],
        'fatal': s['error']=='fatal' or s['failfast'],
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 3, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 3, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 3, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 3, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': True, 'cleanup': False, 'report': True, 'collected': ['earlier', 'recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'recoverable', 'failfast': True, 'handler': False, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': None, 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['earlier', 'recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': 'ok', 'errors': [], 'active': False}, {'continue': True, 'cleanup': True, 'report': False, 'collected': [], 'handler_call': False, 'value': 'ok', 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 3, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 3, 'active': False, 'handled': False, 'fatal': True})], 2: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 6, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 6, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 6, 'result': None, 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 6, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 6, 'result': 0, 'errors': ['earlier'], 'active': False}, {'continue': True, 'cleanup': True, 'report': True, 'collected': ['earlier', 'recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': None, 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': 0, 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': True, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 0, 'result': 0, 'errors': [], 'active': False}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 6, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 6, 'active': False, 'handled': False, 'fatal': True})], 3: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 9, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 9, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 9, 'result': 'ok', 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': 'ok', 'errors': [], 'active': False}, {'continue': True, 'cleanup': True, 'report': False, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 9, 'result': 'ok', 'errors': [], 'active': False}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': True, 'siblings': 9, 'result': None, 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 0, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': True}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 9, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True})], 4: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 12, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 12, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 12, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 12, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': 'ok', 'errors': [], 'active': True}, {'continue': True, 'cleanup': False, 'report': False, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': False, 'siblings': 12, 'result': 'ok', 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 12, 'active': False, 'handled': False, 'fatal': True}), ({'error': None, 'failfast': True, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 12, 'result': 'ok', 'errors': [], 'active': True}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': 'ok', 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': True, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 12, 'result': 0, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': 0, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 12, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 12, 'active': False, 'handled': False, 'fatal': True})], 5: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 15, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 15, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 15, 'result': None, 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 15, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': True}, {'continue': True, 'cleanup': True, 'report': False, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': True, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': 'ok', 'errors': ['earlier'], 'active': False}, {'continue': True, 'cleanup': True, 'report': False, 'collected': ['earlier'], 'handler_call': False, 'value': 'ok', 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'recoverable', 'failfast': False, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': True, 'siblings': 15, 'result': 0, 'errors': ['earlier'], 'active': True}, {'continue': True, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 0, 'active': True, 'handled': True, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': True, 'siblings': 15, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 15, 'active': False, 'handled': False, 'fatal': True}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 15, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 15, 'active': False, 'handled': False, 'fatal': True})]}
for i,(state,expected) in enumerate(fixtures[N]):
    check("transition "+str(i), solve(state), expected)
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
transition 0{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': True, 'remaining': 3, 'report': False, 'value': None}{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': False, 'handled': False, 'handler_call': True, 'remaining': 3, 'report': False, 'value': None}Failed
transition 1{'active': False, 'cleanup': True, 'collected': ['fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}{'active': False, 'cleanup': True, 'collected': ['fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}Passed
transition 2{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}Passed
transition 3{'active': False, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}{'active': False, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}Failed
transition 4{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}Passed
transition 5{'active': False, 'cleanup': True, 'collected': [], 'continue': True, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': 'ok'}{'active': False, 'cleanup': True, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': 'ok'}Failed
transition 6{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}Passed
transition 7{'active': False, 'cleanup': False, 'collected': ['earlier', 'fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}{'active': False, 'cleanup': False, 'collected': ['earlier', 'fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}Passed

SHA-256 / 6a4df982b45524a314f23b1b739ea191260cb37a51c6dfac06e4b1654c23da81

3 / The verified repair

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

N = 1
observations = []
def solve(s):
    return {
        'continue': s['error']!='fatal' and not(s['error'] is not None and s['failfast']),
        'cleanup': s['acquired'] and not s['cleanup_done'],
        'report': s['error'] is not None and not s['reported'] and (not s['handler'] or s['error']=='fatal'),
        'collected': list(s['errors'])+([s['error']] if s['error'] is not None else []),
        'handler_call': s['handler'] and s['error']=='recoverable',
        'value': s['result'] if s['error'] is None else None,
        'remaining': s['siblings'] if s['error']=='fatal' or (s['error'] is not None and s['failfast']) else 0,
        'active': s['active'] and s['error']!='fatal',
        'handled': s['handler'] and s['error']=='recoverable' and not s['failfast'],
        'fatal': s['error']=='fatal',
    }
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 3, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 3, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 3, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 3, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': True, 'cleanup': False, 'report': True, 'collected': ['earlier', 'recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'recoverable', 'failfast': True, 'handler': False, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': None, 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['earlier', 'recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': 'ok', 'errors': [], 'active': False}, {'continue': True, 'cleanup': True, 'report': False, 'collected': [], 'handler_call': False, 'value': 'ok', 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 3, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 3, 'active': False, 'handled': False, 'fatal': True})], 2: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 6, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 6, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 6, 'result': None, 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 6, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 6, 'result': 0, 'errors': ['earlier'], 'active': False}, {'continue': True, 'cleanup': True, 'report': True, 'collected': ['earlier', 'recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': None, 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': 0, 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': True, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 0, 'result': 0, 'errors': [], 'active': False}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 6, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 6, 'active': False, 'handled': False, 'fatal': True})], 3: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 9, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 9, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 9, 'result': 'ok', 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': 'ok', 'errors': [], 'active': False}, {'continue': True, 'cleanup': True, 'report': False, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 9, 'result': 'ok', 'errors': [], 'active': False}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': True, 'siblings': 9, 'result': None, 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 0, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': True, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': True}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 9, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 9, 'active': False, 'handled': False, 'fatal': True})], 4: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': False, 'siblings': 12, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 12, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 12, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 12, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 0, 'result': 'ok', 'errors': [], 'active': True}, {'continue': True, 'cleanup': False, 'report': False, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': False, 'siblings': 12, 'result': 'ok', 'errors': ['earlier'], 'active': False}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 12, 'active': False, 'handled': False, 'fatal': True}), ({'error': None, 'failfast': True, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 12, 'result': 'ok', 'errors': [], 'active': True}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': 'ok', 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': True, 'handler': True, 'reported': False, 'acquired': False, 'cleanup_done': True, 'siblings': 12, 'result': 0, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': 0, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 12, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 12, 'active': False, 'handled': False, 'fatal': True})], 5: [({'error': 'recoverable', 'failfast': True, 'handler': True, 'reported': False, 'acquired': True, 'cleanup_done': True, 'siblings': 15, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 15, 'active': True, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 15, 'result': None, 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': True, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 15, 'active': False, 'handled': False, 'fatal': True}), ({'error': 'recoverable', 'failfast': False, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': True}, {'continue': True, 'cleanup': True, 'report': False, 'collected': ['recoverable'], 'handler_call': False, 'value': None, 'remaining': 0, 'active': True, 'handled': False, 'fatal': False}), ({'error': None, 'failfast': True, 'handler': False, 'reported': True, 'acquired': True, 'cleanup_done': False, 'siblings': 0, 'result': 'ok', 'errors': ['earlier'], 'active': False}, {'continue': True, 'cleanup': True, 'report': False, 'collected': ['earlier'], 'handler_call': False, 'value': 'ok', 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'recoverable', 'failfast': False, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': True, 'siblings': 15, 'result': 0, 'errors': ['earlier'], 'active': True}, {'continue': True, 'cleanup': False, 'report': False, 'collected': ['earlier', 'recoverable'], 'handler_call': True, 'value': None, 'remaining': 0, 'active': True, 'handled': True, 'fatal': False}), ({'error': 'fatal', 'failfast': False, 'handler': True, 'reported': True, 'acquired': False, 'cleanup_done': True, 'siblings': 15, 'result': 0, 'errors': [], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['fatal'], 'handler_call': False, 'value': None, 'remaining': 15, 'active': False, 'handled': False, 'fatal': True}), ({'error': None, 'failfast': False, 'handler': False, 'reported': False, 'acquired': False, 'cleanup_done': False, 'siblings': 0, 'result': None, 'errors': [], 'active': False}, {'continue': True, 'cleanup': False, 'report': False, 'collected': [], 'handler_call': False, 'value': None, 'remaining': 0, 'active': False, 'handled': False, 'fatal': False}), ({'error': 'fatal', 'failfast': True, 'handler': True, 'reported': True, 'acquired': True, 'cleanup_done': True, 'siblings': 15, 'result': 'ok', 'errors': ['earlier'], 'active': True}, {'continue': False, 'cleanup': False, 'report': False, 'collected': ['earlier', 'fatal'], 'handler_call': False, 'value': None, 'remaining': 15, 'active': False, 'handled': False, 'fatal': True})]}
for i,(state,expected) in enumerate(fixtures[N]):
    check("transition "+str(i), solve(state), expected)
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
transition 0{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': False, 'handled': False, 'handler_call': True, 'remaining': 3, 'report': False, 'value': None}{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': False, 'handled': False, 'handler_call': True, 'remaining': 3, 'report': False, 'value': None}Passed
transition 1{'active': False, 'cleanup': True, 'collected': ['fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}{'active': False, 'cleanup': True, 'collected': ['fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}Passed
transition 2{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}{'active': True, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}Passed
transition 3{'active': False, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}{'active': False, 'cleanup': False, 'collected': ['earlier', 'recoverable'], 'continue': False, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': True, 'value': None}Passed
transition 4{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}Passed
transition 5{'active': False, 'cleanup': True, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': 'ok'}{'active': False, 'cleanup': True, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': 'ok'}Passed
transition 6{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}{'active': False, 'cleanup': False, 'collected': [], 'continue': True, 'fatal': False, 'handled': False, 'handler_call': False, 'remaining': 0, 'report': False, 'value': None}Passed
transition 7{'active': False, 'cleanup': False, 'collected': ['earlier', 'fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}{'active': False, 'cleanup': False, 'collected': ['earlier', 'fatal'], 'continue': False, 'fatal': True, 'handled': False, 'handler_call': False, 'remaining': 3, 'report': False, 'value': None}Passed

SHA-256 / 6c9706dd432d125feeac2f1d4f64d142e37ae27fcc83226e7329c918082e9cc4

Verification & scope

A deterministic, bounded, single-threaded transition planner. Returned plans model state changes; they do not implement a production event framework. 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:43:44.951232+00:00.

Case digest / b20de06af98fa38ee090f1a8e41f0aa11ecdd8707c955718f3d8a5484b8fde9c