{"abstract":"While ready, event restart_cancel produces stopped/terminate instead of running/resume_admission.","category":"Protocols","checks":14,"contract":"For the stipulated Peer restart-drain coordination controller, initialize the explicitly shown resource registers from seed (1..5), then consume classified events sequentially. After each event return a deep snapshot of phase, resource registers, and cumulative emitted control frames. The explicit ten phase/event rules and their resource effects define admission and response semantics. Unlisted events preserve phase and emit rejection. Payload is the consecutive integers seed through 2*seed+1. Empty event input returns no observations.","evaluation_group":"s3-protocols-orderly_restart","failed_approach":"The partial repair chooses running/keep_admission_closed, which still violates this phase-specific event contract.","family":"s3-protocols-orderly_restart-ready-restart_cancel","id":"FA-19606","implementations":{"attempt":{"sha256":"a003da50f212f958c353a148b8d9ff85992940655fa06eff1c74753f7172a1bf","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(phase, events, seed):\n    payload = list(range(seed, seed * 2 + 2))\n    r = {'admission': phase=='running', 'owned_session': None if phase=='stopped' else seed, 'generation': seed, 'work': payload[:], 'ready': False, 'delivered': []}\n    frames = []\n    observed = []\n    table = {('running', 'restart_notice'): ('draining', 'stop_new_work'), ('draining', 'work_finished'): ('ready', 'send_ready'), ('ready', 'restart_commit'): ('stopped', 'close_old_session'), ('ready', 'restart_cancel'): ('running', 'keep_admission_closed'), ('stopped', 'new_session'): ('synchronizing', 'exchange_generation'), ('synchronizing', 'generation_agreed'): ('running', 'resume_admission'), ('draining', 'new_work'): ('draining', 'redirect_work'), ('running', 'restart_commit'): ('running', 'reject_unprepared'), ('synchronizing', 'old_session_frame'): ('synchronizing', 'reject_old_generation'), ('stopped', 'duplicate_commit'): ('stopped', 'ack_stopped')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'stop_new_work':\n            r['admission']=False\n        elif action == 'send_ready':\n            r['ready']=True; frames.append(['DRAINED',r['generation']])\n        elif action == 'close_old_session':\n            r['owned_session']=None\n        elif action == 'resume_admission':\n            r['admission']=True\n        elif action == 'exchange_generation':\n            frames.append(['GENERATION',seed+1])\n        elif action == 'redirect_work':\n            frames.append(['REDIRECT',payload])\n        elif action == 'reject_unprepared':\n            frames.append(['NOT_DRAINED',seed])\n        elif action == 'reject_old_generation':\n            frames.append(['STALE_GENERATION',seed])\n        elif action == 'ack_stopped':\n            frames.append(['STOPPED',seed])\n        elif action == 'terminate':\n            r['owned_session']=None; r['work']=[]\n        elif action == 'accept_new_work':\n            r['work'].extend(payload)\n        elif action == 'resume_old':\n            r['owned_session']=seed; r['admission']=True\n        elif action == 'keep_admission_closed':\n            r['admission']=False\n        elif action == 'reuse_generation':\n            frames.append(['GENERATION',seed])\n        elif action == 'resume_old_work':\n            r['delivered'].extend(r['work'])\n        elif action == 'accept_work':\n            r['work'].extend(payload)\n        elif action == 'drop':\n            r['work']=[]\n        elif action == 'deliver':\n            r['delivered'].extend(payload)\n        elif action == 'buffer_old':\n            r['work'].extend(payload)\n        elif action == 'close_new_session':\n            r['owned_session']=None; r['generation']=seed+1\n        else:\n            if action not in (\"wait\", \"ignore\", \"keep\", \"retain\", \"keep_peer\", \"keep_offer\", \"keep_hold\", \"keep_batch\", \"retain_staging\", \"keep_staging\", \"keep_local_owner\", \"keep_old_session\", \"keep_address\", \"keep_old_expiry\", \"ignore_conflict\", \"keep_service\", \"keep_subscription\", \"retain_shadow\", \"keep_live\", \"keep_suspicion\", \"keep_roles\", \"keep_staged\"):\n                frames.append([action, payload[:]])\n        observed.append(json.loads(json.dumps({\"phase\": phase, \"registers\": r, \"frames\": frames})))\n    return observed\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 1]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 2]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 1]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 1]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 1]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]], ['DRAINED', 1]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]], ['DRAINED', 1]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]], ['DRAINED', 1]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['reject', [1, 2, 3]]]}])], 2: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 2]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 3]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 2]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 2]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 2]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['reject', [2, 3, 4, 5]]]}])], 3: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 3]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 4]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 3]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 3]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 3]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3], ['REDIRECT', [3, 4, 5, 6, 7]]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['reject', [3, 4, 5, 6, 7]]]}])], 4: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 4]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 5]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 4]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 4]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 4]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work', 'work_finished'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4], ['REDIRECT', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4], ['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4], ['REDIRECT', [4, 5, 6, 7, 8, 9]]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['reject', [4, 5, 6, 7, 8, 9]]]}])], 5: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 5]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 6]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 5]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 5]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 5]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work', 'work_finished'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['reject', [5, 6, 7, 8, 9, 10, 11]]]}])]}\nfor label, phase, events, expected in cases[N]:\n    check(label, solve(phase, events, N), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"8322dd79020a8b991c7bdfc566dc1a224055437c9100a939b2773d0e93449070","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(phase, events, seed):\n    payload = list(range(seed, seed * 2 + 2))\n    r = {'admission': phase=='running', 'owned_session': None if phase=='stopped' else seed, 'generation': seed, 'work': payload[:], 'ready': False, 'delivered': []}\n    frames = []\n    observed = []\n    table = {('running', 'restart_notice'): ('draining', 'stop_new_work'), ('draining', 'work_finished'): ('ready', 'send_ready'), ('ready', 'restart_commit'): ('stopped', 'close_old_session'), ('ready', 'restart_cancel'): ('stopped', 'terminate'), ('stopped', 'new_session'): ('synchronizing', 'exchange_generation'), ('synchronizing', 'generation_agreed'): ('running', 'resume_admission'), ('draining', 'new_work'): ('draining', 'redirect_work'), ('running', 'restart_commit'): ('running', 'reject_unprepared'), ('synchronizing', 'old_session_frame'): ('synchronizing', 'reject_old_generation'), ('stopped', 'duplicate_commit'): ('stopped', 'ack_stopped')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'stop_new_work':\n            r['admission']=False\n        elif action == 'send_ready':\n            r['ready']=True; frames.append(['DRAINED',r['generation']])\n        elif action == 'close_old_session':\n            r['owned_session']=None\n        elif action == 'resume_admission':\n            r['admission']=True\n        elif action == 'exchange_generation':\n            frames.append(['GENERATION',seed+1])\n        elif action == 'redirect_work':\n            frames.append(['REDIRECT',payload])\n        elif action == 'reject_unprepared':\n            frames.append(['NOT_DRAINED',seed])\n        elif action == 'reject_old_generation':\n            frames.append(['STALE_GENERATION',seed])\n        elif action == 'ack_stopped':\n            frames.append(['STOPPED',seed])\n        elif action == 'terminate':\n            r['owned_session']=None; r['work']=[]\n        elif action == 'accept_new_work':\n            r['work'].extend(payload)\n        elif action == 'resume_old':\n            r['owned_session']=seed; r['admission']=True\n        elif action == 'keep_admission_closed':\n            r['admission']=False\n        elif action == 'reuse_generation':\n            frames.append(['GENERATION',seed])\n        elif action == 'resume_old_work':\n            r['delivered'].extend(r['work'])\n        elif action == 'accept_work':\n            r['work'].extend(payload)\n        elif action == 'drop':\n            r['work']=[]\n        elif action == 'deliver':\n            r['delivered'].extend(payload)\n        elif action == 'buffer_old':\n            r['work'].extend(payload)\n        elif action == 'close_new_session':\n            r['owned_session']=None; r['generation']=seed+1\n        else:\n            if action not in (\"wait\", \"ignore\", \"keep\", \"retain\", \"keep_peer\", \"keep_offer\", \"keep_hold\", \"keep_batch\", \"retain_staging\", \"keep_staging\", \"keep_local_owner\", \"keep_old_session\", \"keep_address\", \"keep_old_expiry\", \"ignore_conflict\", \"keep_service\", \"keep_subscription\", \"retain_shadow\", \"keep_live\", \"keep_suspicion\", \"keep_roles\", \"keep_staged\"):\n                frames.append([action, payload[:]])\n        observed.append(json.loads(json.dumps({\"phase\": phase, \"registers\": r, \"frames\": frames})))\n    return observed\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 1]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 2]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 1]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 1]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 1]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]], ['DRAINED', 1]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]], ['DRAINED', 1]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]], ['DRAINED', 1]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['reject', [1, 2, 3]]]}])], 2: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 2]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 3]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 2]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 2]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 2]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['reject', [2, 3, 4, 5]]]}])], 3: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 3]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 4]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 3]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 3]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 3]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3], ['REDIRECT', [3, 4, 5, 6, 7]]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['reject', [3, 4, 5, 6, 7]]]}])], 4: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 4]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 5]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 4]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 4]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 4]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work', 'work_finished'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4], ['REDIRECT', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4], ['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4], ['REDIRECT', [4, 5, 6, 7, 8, 9]]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['reject', [4, 5, 6, 7, 8, 9]]]}])], 5: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 5]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 6]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 5]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 5]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 5]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work', 'work_finished'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['reject', [5, 6, 7, 8, 9, 10, 11]]]}])]}\nfor label, phase, events, expected in cases[N]:\n    check(label, solve(phase, events, N), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"da4c54016d598c94d35e0378772231520eb102e2b75ffbe15b24be0065c5f5db","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(phase, events, seed):\n    payload = list(range(seed, seed * 2 + 2))\n    r = {'admission': phase=='running', 'owned_session': None if phase=='stopped' else seed, 'generation': seed, 'work': payload[:], 'ready': False, 'delivered': []}\n    frames = []\n    observed = []\n    table = {('running', 'restart_notice'): ('draining', 'stop_new_work'), ('draining', 'work_finished'): ('ready', 'send_ready'), ('ready', 'restart_commit'): ('stopped', 'close_old_session'), ('ready', 'restart_cancel'): ('running', 'resume_admission'), ('stopped', 'new_session'): ('synchronizing', 'exchange_generation'), ('synchronizing', 'generation_agreed'): ('running', 'resume_admission'), ('draining', 'new_work'): ('draining', 'redirect_work'), ('running', 'restart_commit'): ('running', 'reject_unprepared'), ('synchronizing', 'old_session_frame'): ('synchronizing', 'reject_old_generation'), ('stopped', 'duplicate_commit'): ('stopped', 'ack_stopped')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'stop_new_work':\n            r['admission']=False\n        elif action == 'send_ready':\n            r['ready']=True; frames.append(['DRAINED',r['generation']])\n        elif action == 'close_old_session':\n            r['owned_session']=None\n        elif action == 'resume_admission':\n            r['admission']=True\n        elif action == 'exchange_generation':\n            frames.append(['GENERATION',seed+1])\n        elif action == 'redirect_work':\n            frames.append(['REDIRECT',payload])\n        elif action == 'reject_unprepared':\n            frames.append(['NOT_DRAINED',seed])\n        elif action == 'reject_old_generation':\n            frames.append(['STALE_GENERATION',seed])\n        elif action == 'ack_stopped':\n            frames.append(['STOPPED',seed])\n        elif action == 'terminate':\n            r['owned_session']=None; r['work']=[]\n        elif action == 'accept_new_work':\n            r['work'].extend(payload)\n        elif action == 'resume_old':\n            r['owned_session']=seed; r['admission']=True\n        elif action == 'keep_admission_closed':\n            r['admission']=False\n        elif action == 'reuse_generation':\n            frames.append(['GENERATION',seed])\n        elif action == 'resume_old_work':\n            r['delivered'].extend(r['work'])\n        elif action == 'accept_work':\n            r['work'].extend(payload)\n        elif action == 'drop':\n            r['work']=[]\n        elif action == 'deliver':\n            r['delivered'].extend(payload)\n        elif action == 'buffer_old':\n            r['work'].extend(payload)\n        elif action == 'close_new_session':\n            r['owned_session']=None; r['generation']=seed+1\n        else:\n            if action not in (\"wait\", \"ignore\", \"keep\", \"retain\", \"keep_peer\", \"keep_offer\", \"keep_hold\", \"keep_batch\", \"retain_staging\", \"keep_staging\", \"keep_local_owner\", \"keep_old_session\", \"keep_address\", \"keep_old_expiry\", \"ignore_conflict\", \"keep_service\", \"keep_subscription\", \"retain_shadow\", \"keep_live\", \"keep_suspicion\", \"keep_roles\", \"keep_staged\"):\n                frames.append([action, payload[:]])\n        observed.append(json.loads(json.dumps({\"phase\": phase, \"registers\": r, \"frames\": frames})))\n    return observed\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 1]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 2]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 1]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 1]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 1]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]], ['DRAINED', 1]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]], ['DRAINED', 1]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [1, 2, 3]], ['DRAINED', 1]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 1, 'generation': 1, 'work': [1, 2, 3], 'ready': False, 'delivered': []}, 'frames': [['reject', [1, 2, 3]]]}])], 2: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 2]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 3]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 2]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 2]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 2]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [2, 3, 4, 5]], ['DRAINED', 2]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 2, 'generation': 2, 'work': [2, 3, 4, 5], 'ready': False, 'delivered': []}, 'frames': [['reject', [2, 3, 4, 5]]]}])], 3: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 3]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 4]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 3]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 3]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 3]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3], ['REDIRECT', [3, 4, 5, 6, 7]]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [3, 4, 5, 6, 7]], ['DRAINED', 3]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 3, 'generation': 3, 'work': [3, 4, 5, 6, 7], 'ready': False, 'delivered': []}, 'frames': [['reject', [3, 4, 5, 6, 7]]]}])], 4: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 4]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 5]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 4]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 4]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 4]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work', 'work_finished'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4], ['REDIRECT', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4], ['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [4, 5, 6, 7, 8, 9]], ['DRAINED', 4], ['REDIRECT', [4, 5, 6, 7, 8, 9]]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 4, 'generation': 4, 'work': [4, 5, 6, 7, 8, 9], 'ready': False, 'delivered': []}, 'frames': [['reject', [4, 5, 6, 7, 8, 9]]]}])], 5: [('running/restart_notice', 'running', ['restart_notice'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/work_finished', 'draining', ['work_finished'], [{'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['DRAINED', 5]]}]), ('ready/restart_commit', 'ready', ['restart_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('ready/restart_cancel', 'ready', ['restart_cancel'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('stopped/new_session', 'stopped', ['new_session'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': None, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['GENERATION', 6]]}]), ('synchronizing/generation_agreed', 'synchronizing', ['generation_agreed'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}]), ('draining/new_work', 'draining', ['new_work'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}]), ('running/restart_commit', 'running', ['restart_commit'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['NOT_DRAINED', 5]]}]), ('synchronizing/old_session_frame', 'synchronizing', ['old_session_frame'], [{'phase': 'synchronizing', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['STALE_GENERATION', 5]]}]), ('stopped/duplicate_commit', 'stopped', ['duplicate_commit'], [{'phase': 'stopped', 'registers': {'admission': False, 'owned_session': None, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['STOPPED', 5]]}]), ('ordered trace 0', 'running', ['restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel'], [{'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}]), ('ordered trace 3', 'ready', ['restart_cancel', 'restart_notice', 'new_work', 'work_finished', 'restart_cancel', 'restart_notice', 'new_work', 'work_finished'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': []}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}, {'phase': 'draining', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]]]}, {'phase': 'ready', 'registers': {'admission': False, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': True, 'delivered': []}, 'frames': [['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5], ['REDIRECT', [5, 6, 7, 8, 9, 10, 11]], ['DRAINED', 5]]}]), ('empty input', 'running', [], []), ('unknown event', 'running', ['unsupported'], [{'phase': 'running', 'registers': {'admission': True, 'owned_session': 5, 'generation': 5, 'work': [5, 6, 7, 8, 9, 10, 11], 'ready': False, 'delivered': []}, 'frames': [['reject', [5, 6, 7, 8, 9, 10, 11]]]}])]}\nfor label, phase, events, expected in cases[N]:\n    check(label, solve(phase, events, N), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Bounded offline control-plane abstraction with prescribed initial registers and classified events. Not a named protocol implementation or conformance test; excludes wire parsing, transport retries, physical execution, authentication, crash persistence, and timing. Related event faults share the full corrected controller and evaluation group. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-protocols-orderly_restart-ready-restart_cancel","generated_at":"2026-09-29T14:40:10.045977+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Incorrect event admission now changes concrete queued data, resource ownership, or emitted protocol frames and subsequent trace behavior.","repair":"In phase ready, classify restart_cancel as transition to running and emit resume_admission.","root_cause":"In ready, the restart cancel handler runs terminate and enters stopped; it must instead run resume admission and enter running.","sha256":"9471be3a5314c4dae5e6d41793a1008ac913449ddd736eb55dd638cc611e4384","title":"Peer restart-drain coordination controller: ready / restart cancel · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":57.474,"exit_code":1,"observations":[{"actual":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"running/restart_notice","expected":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"check":"draining/work_finished","expected":[{"frames":[["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"check":"ready/restart_commit","expected":[{"frames":[],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"running","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"ready/restart_cancel","expected":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":false},{"actual":[{"frames":[["GENERATION",2]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"check":"stopped/new_session","expected":[{"frames":[["GENERATION",2]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"synchronizing/generation_agreed","expected":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"draining/new_work","expected":[{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["NOT_DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"running/restart_commit","expected":[{"frames":[["NOT_DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["STALE_GENERATION",1]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"synchronizing/old_session_frame","expected":[{"frames":[["STALE_GENERATION",1]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["STOPPED",1]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"check":"stopped/duplicate_commit","expected":[{"frames":[["STOPPED",1]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"running","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"check":"ordered trace 0","expected":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"passed":false},{"actual":[{"frames":[],"phase":"running","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"check":"ordered trace 3","expected":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"passed":false},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["reject",[1,2,3]]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"unknown event","expected":[{"frames":[["reject",[1,2,3]]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"running/restart_notice\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/work_finished\", \"actual\": [{\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"DRAINED\", 1]]}], \"expected\": [{\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"DRAINED\", 1]]}], \"passed\": true}, {\"check\": \"ready/restart_commit\", \"actual\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"ready/restart_cancel\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": false}, {\"check\": \"stopped/new_session\", \"actual\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"GENERATION\", 2]]}], \"expected\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"GENERATION\", 2]]}], \"passed\": true}, {\"check\": \"synchronizing/generation_agreed\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/new_work\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"running/restart_commit\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"NOT_DRAINED\", 1]]}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"NOT_DRAINED\", 1]]}], \"passed\": true}, {\"check\": \"synchronizing/old_session_frame\", \"actual\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STALE_GENERATION\", 1]]}], \"expected\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STALE_GENERATION\", 1]]}], \"passed\": true}, {\"check\": \"stopped/duplicate_commit\", \"actual\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STOPPED\", 1]]}], \"expected\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STOPPED\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}, {\"phase\": \"running\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}, {\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"passed\": false}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"passed\": false}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":100.689,"exit_code":1,"observations":[{"actual":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"running/restart_notice","expected":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"check":"draining/work_finished","expected":[{"frames":[["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"check":"ready/restart_commit","expected":[{"frames":[],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[]}}],"check":"ready/restart_cancel","expected":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":false},{"actual":[{"frames":[["GENERATION",2]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"check":"stopped/new_session","expected":[{"frames":[["GENERATION",2]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"synchronizing/generation_agreed","expected":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"draining/new_work","expected":[{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["NOT_DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"running/restart_commit","expected":[{"frames":[["NOT_DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["STALE_GENERATION",1]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"synchronizing/old_session_frame","expected":[{"frames":[["STALE_GENERATION",1]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["STOPPED",1]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"check":"stopped/duplicate_commit","expected":[{"frames":[["STOPPED",1]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":true,"work":[]}}],"check":"ordered trace 0","expected":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"passed":false},{"actual":[{"frames":[],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[]}},{"frames":[["reject",[1,2,3]]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[]}},{"frames":[["reject",[1,2,3]],["reject",[1,2,3]]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[]}},{"frames":[["reject",[1,2,3]],["reject",[1,2,3]],["reject",[1,2,3]]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[]}}],"check":"ordered trace 3","expected":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"passed":false},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["reject",[1,2,3]]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"unknown event","expected":[{"frames":[["reject",[1,2,3]]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"running/restart_notice\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/work_finished\", \"actual\": [{\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"DRAINED\", 1]]}], \"expected\": [{\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"DRAINED\", 1]]}], \"passed\": true}, {\"check\": \"ready/restart_commit\", \"actual\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"ready/restart_cancel\", \"actual\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": false}, {\"check\": \"stopped/new_session\", \"actual\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"GENERATION\", 2]]}], \"expected\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"GENERATION\", 2]]}], \"passed\": true}, {\"check\": \"synchronizing/generation_agreed\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/new_work\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"running/restart_commit\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"NOT_DRAINED\", 1]]}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"NOT_DRAINED\", 1]]}], \"passed\": true}, {\"check\": \"synchronizing/old_session_frame\", \"actual\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STALE_GENERATION\", 1]]}], \"expected\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STALE_GENERATION\", 1]]}], \"passed\": true}, {\"check\": \"stopped/duplicate_commit\", \"actual\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STOPPED\", 1]]}], \"expected\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STOPPED\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}, {\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}, {\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"passed\": false}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [], \"ready\": false, \"delivered\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}, {\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [], \"ready\": false, \"delivered\": []}, \"frames\": [[\"reject\", [1, 2, 3]], [\"reject\", [1, 2, 3]]]}, {\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [], \"ready\": false, \"delivered\": []}, \"frames\": [[\"reject\", [1, 2, 3]], [\"reject\", [1, 2, 3]], [\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"passed\": false}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":74.637,"exit_code":0,"observations":[{"actual":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"running/restart_notice","expected":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"check":"draining/work_finished","expected":[{"frames":[["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"check":"ready/restart_commit","expected":[{"frames":[],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"ready/restart_cancel","expected":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["GENERATION",2]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"check":"stopped/new_session","expected":[{"frames":[["GENERATION",2]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"synchronizing/generation_agreed","expected":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"draining/new_work","expected":[{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["NOT_DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"running/restart_commit","expected":[{"frames":[["NOT_DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["STALE_GENERATION",1]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"synchronizing/old_session_frame","expected":[{"frames":[["STALE_GENERATION",1]],"phase":"synchronizing","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[["STOPPED",1]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"check":"stopped/duplicate_commit","expected":[{"frames":[["STOPPED",1]],"phase":"stopped","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":null,"ready":false,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"check":"ordered trace 0","expected":[{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"passed":true},{"actual":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"check":"ordered trace 3","expected":[{"frames":[],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]]],"phase":"draining","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}},{"frames":[["REDIRECT",[1,2,3]],["DRAINED",1]],"phase":"ready","registers":{"admission":false,"delivered":[],"generation":1,"owned_session":1,"ready":true,"work":[1,2,3]}}],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["reject",[1,2,3]]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"check":"unknown event","expected":[{"frames":[["reject",[1,2,3]]],"phase":"running","registers":{"admission":true,"delivered":[],"generation":1,"owned_session":1,"ready":false,"work":[1,2,3]}}],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"running/restart_notice\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/work_finished\", \"actual\": [{\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"DRAINED\", 1]]}], \"expected\": [{\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"DRAINED\", 1]]}], \"passed\": true}, {\"check\": \"ready/restart_commit\", \"actual\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"ready/restart_cancel\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"stopped/new_session\", \"actual\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"GENERATION\", 2]]}], \"expected\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"GENERATION\", 2]]}], \"passed\": true}, {\"check\": \"synchronizing/generation_agreed\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/new_work\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}], \"passed\": true}, {\"check\": \"running/restart_commit\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"NOT_DRAINED\", 1]]}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"NOT_DRAINED\", 1]]}], \"passed\": true}, {\"check\": \"synchronizing/old_session_frame\", \"actual\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STALE_GENERATION\", 1]]}], \"expected\": [{\"phase\": \"synchronizing\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STALE_GENERATION\", 1]]}], \"passed\": true}, {\"check\": \"stopped/duplicate_commit\", \"actual\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STOPPED\", 1]]}], \"expected\": [{\"phase\": \"stopped\", \"registers\": {\"admission\": false, \"owned_session\": null, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"STOPPED\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}, {\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}, {\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]]]}, {\"phase\": \"ready\", \"registers\": {\"admission\": false, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": true, \"delivered\": []}, \"frames\": [[\"REDIRECT\", [1, 2, 3]], [\"DRAINED\", 1]]}], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"running\", \"registers\": {\"admission\": true, \"owned_session\": 1, \"generation\": 1, \"work\": [1, 2, 3], \"ready\": false, \"delivered\": []}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}