{"abstract":"While fenced, event checkpoint_request produces streaming/deliver_all instead of checkpointing/snapshot_cut.","category":"Protocols","checks":14,"contract":"For the stipulated Record-stream checkpoint fence 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-record_fence","failed_approach":"The partial repair chooses checkpointing/snapshot_latest, which still violates this phase-specific event contract.","family":"s3-protocols-record_fence-fenced-checkpoint_request","id":"FA-20311","implementations":{"attempt":{"sha256":"f36bed0fbd5ef21d1eda895dcd4756a576fb6a2a42e21f7b9aad63563dfdc581","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 = {'cut': seed+1, 'buffer': payload[:], 'delivered': [], 'snapshot': [x for x in payload if x<=seed+1] if phase=='saved' else [], 'durable': phase=='saved'}\n    frames = []\n    observed = []\n    table = {('streaming', 'fence_request'): ('draining', 'freeze_cut'), ('draining', 'record_before_cut'): ('draining', 'deliver_pre_cut'), ('draining', 'record_after_cut'): ('draining', 'buffer_post_cut'), ('draining', 'pre_cut_drained'): ('fenced', 'ack_fence'), ('fenced', 'checkpoint_request'): ('checkpointing', 'snapshot_latest'), ('checkpointing', 'checkpoint_saved'): ('saved', 'report_checkpoint'), ('saved', 'resume'): ('streaming', 'release_buffer_in_order'), ('checkpointing', 'checkpoint_failed'): ('fenced', 'report_failure_keep_buffer'), ('fenced', 'record_after_cut'): ('fenced', 'buffer_post_cut'), ('streaming', 'unsolicited_resume'): ('streaming', 'reject_unfenced')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'freeze_cut':\n            r['cut']=seed+1\n        elif action == 'deliver_pre_cut':\n            r['delivered'].extend([x for x in payload if x<=r['cut']])\n        elif action == 'buffer_post_cut':\n            r['buffer'].extend([x for x in payload if x>r['cut']])\n        elif action == 'ack_fence':\n            frames.append(['FENCED',r['cut']])\n        elif action == 'snapshot_cut':\n            r['snapshot']=[x for x in payload if x<=r['cut']]\n        elif action == 'report_checkpoint':\n            r['durable']=True; frames.append(['CHECKPOINT',r['cut']])\n        elif action == 'release_buffer_in_order':\n            r['delivered'].extend(r['buffer']); r['buffer']=[]\n        elif action == 'report_failure_keep_buffer':\n            frames.append(['CHECKPOINT_FAILED',r['cut']])\n        elif action == 'reject_unfenced':\n            frames.append(['NOT_FENCED',seed])\n        elif action == 'advance_cut':\n            r['cut']=max(payload)+1\n        elif action == 'deliver_post_cut':\n            r['delivered'].extend([x for x in payload if x>r['cut']])\n        elif action == 'drop_record':\n            r['buffer']=[]\n        elif action == 'deliver_all':\n            r['delivered'].extend(payload)\n        elif action == 'clear_post_cut':\n            r['buffer']=[]\n        elif action == 'snapshot_latest':\n            r['snapshot']=payload[:]\n        elif action == 'resume':\n            r['delivered'].extend(r['buffer']); r['buffer']=[]\n        elif action == 'report_latest_cut':\n            r['durable']=True; frames.append(['CHECKPOINT',max(payload)])\n        elif action == 'release_reverse':\n            r['delivered'].extend(reversed(r['buffer'])); r['buffer']=[]\n        elif action == 'drop_buffer':\n            r['buffer']=[]\n        elif action == 'report_success':\n            r['durable']=True; frames.append(['CHECKPOINT',r['cut']])\n        elif action == 'deliver':\n            r['delivered'].extend(payload)\n        elif action == 'replay_previous':\n            r['delivered'].extend([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: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [1, 2], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 2]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 2, 'buffer': [], 'delivered': [1, 2, 3], 'snapshot': [1, 2], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 2]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 1]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}, {'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}, {'phase': 'checkpointing', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [1, 2], 'snapshot': [1, 2], 'durable': False}, 'frames': [['FENCED', 2]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [1, 2, 3]]]}])], 2: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [2, 3], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 3]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 3, 'buffer': [], 'delivered': [2, 3, 4, 5], 'snapshot': [2, 3], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 3]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 2]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'checkpointing', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5, 4, 5], 'delivered': [], 'snapshot': [2, 3], 'durable': False}, 'frames': [['FENCED', 3]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'checkpointing', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [2, 3], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [2, 3], 'durable': False}, 'frames': [['FENCED', 3], ['CHECKPOINT_FAILED', 3]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [2, 3, 4, 5]]]}])], 3: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [3, 4], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 4]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 4, 'buffer': [], 'delivered': [3, 4, 5, 6, 7], 'snapshot': [3, 4], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 4]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 3]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4], ['CHECKPOINT_FAILED', 4]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4], ['CHECKPOINT_FAILED', 4]]}, {'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4], ['CHECKPOINT_FAILED', 4]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [3, 4, 5, 6, 7]]]}])], 4: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 5]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 5, 'buffer': [], 'delivered': [4, 5, 6, 7, 8, 9], 'snapshot': [4, 5], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 5]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 4]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5], ['CHECKPOINT_FAILED', 5]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [4, 5, 6, 7, 8, 9]]]}])], 5: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 6]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 6, 'buffer': [], 'delivered': [5, 6, 7, 8, 9, 10, 11], 'snapshot': [5, 6], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 6]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 5]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6], ['CHECKPOINT_FAILED', 6]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6], ['CHECKPOINT_FAILED', 6]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, '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":"cf99a4542aa2854c6eac3fd050779ccc138d33fef822a60edd0579ef1f2a5ad5","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 = {'cut': seed+1, 'buffer': payload[:], 'delivered': [], 'snapshot': [x for x in payload if x<=seed+1] if phase=='saved' else [], 'durable': phase=='saved'}\n    frames = []\n    observed = []\n    table = {('streaming', 'fence_request'): ('draining', 'freeze_cut'), ('draining', 'record_before_cut'): ('draining', 'deliver_pre_cut'), ('draining', 'record_after_cut'): ('draining', 'buffer_post_cut'), ('draining', 'pre_cut_drained'): ('fenced', 'ack_fence'), ('fenced', 'checkpoint_request'): ('streaming', 'deliver_all'), ('checkpointing', 'checkpoint_saved'): ('saved', 'report_checkpoint'), ('saved', 'resume'): ('streaming', 'release_buffer_in_order'), ('checkpointing', 'checkpoint_failed'): ('fenced', 'report_failure_keep_buffer'), ('fenced', 'record_after_cut'): ('fenced', 'buffer_post_cut'), ('streaming', 'unsolicited_resume'): ('streaming', 'reject_unfenced')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'freeze_cut':\n            r['cut']=seed+1\n        elif action == 'deliver_pre_cut':\n            r['delivered'].extend([x for x in payload if x<=r['cut']])\n        elif action == 'buffer_post_cut':\n            r['buffer'].extend([x for x in payload if x>r['cut']])\n        elif action == 'ack_fence':\n            frames.append(['FENCED',r['cut']])\n        elif action == 'snapshot_cut':\n            r['snapshot']=[x for x in payload if x<=r['cut']]\n        elif action == 'report_checkpoint':\n            r['durable']=True; frames.append(['CHECKPOINT',r['cut']])\n        elif action == 'release_buffer_in_order':\n            r['delivered'].extend(r['buffer']); r['buffer']=[]\n        elif action == 'report_failure_keep_buffer':\n            frames.append(['CHECKPOINT_FAILED',r['cut']])\n        elif action == 'reject_unfenced':\n            frames.append(['NOT_FENCED',seed])\n        elif action == 'advance_cut':\n            r['cut']=max(payload)+1\n        elif action == 'deliver_post_cut':\n            r['delivered'].extend([x for x in payload if x>r['cut']])\n        elif action == 'drop_record':\n            r['buffer']=[]\n        elif action == 'deliver_all':\n            r['delivered'].extend(payload)\n        elif action == 'clear_post_cut':\n            r['buffer']=[]\n        elif action == 'snapshot_latest':\n            r['snapshot']=payload[:]\n        elif action == 'resume':\n            r['delivered'].extend(r['buffer']); r['buffer']=[]\n        elif action == 'report_latest_cut':\n            r['durable']=True; frames.append(['CHECKPOINT',max(payload)])\n        elif action == 'release_reverse':\n            r['delivered'].extend(reversed(r['buffer'])); r['buffer']=[]\n        elif action == 'drop_buffer':\n            r['buffer']=[]\n        elif action == 'report_success':\n            r['durable']=True; frames.append(['CHECKPOINT',r['cut']])\n        elif action == 'deliver':\n            r['delivered'].extend(payload)\n        elif action == 'replay_previous':\n            r['delivered'].extend([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: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [1, 2], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 2]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 2, 'buffer': [], 'delivered': [1, 2, 3], 'snapshot': [1, 2], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 2]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 1]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}, {'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}, {'phase': 'checkpointing', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [1, 2], 'snapshot': [1, 2], 'durable': False}, 'frames': [['FENCED', 2]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [1, 2, 3]]]}])], 2: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [2, 3], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 3]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 3, 'buffer': [], 'delivered': [2, 3, 4, 5], 'snapshot': [2, 3], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 3]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 2]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'checkpointing', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5, 4, 5], 'delivered': [], 'snapshot': [2, 3], 'durable': False}, 'frames': [['FENCED', 3]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'checkpointing', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [2, 3], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [2, 3], 'durable': False}, 'frames': [['FENCED', 3], ['CHECKPOINT_FAILED', 3]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [2, 3, 4, 5]]]}])], 3: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [3, 4], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 4]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 4, 'buffer': [], 'delivered': [3, 4, 5, 6, 7], 'snapshot': [3, 4], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 4]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 3]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4], ['CHECKPOINT_FAILED', 4]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4], ['CHECKPOINT_FAILED', 4]]}, {'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4], ['CHECKPOINT_FAILED', 4]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [3, 4, 5, 6, 7]]]}])], 4: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 5]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 5, 'buffer': [], 'delivered': [4, 5, 6, 7, 8, 9], 'snapshot': [4, 5], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 5]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 4]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5], ['CHECKPOINT_FAILED', 5]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [4, 5, 6, 7, 8, 9]]]}])], 5: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 6]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 6, 'buffer': [], 'delivered': [5, 6, 7, 8, 9, 10, 11], 'snapshot': [5, 6], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 6]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 5]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6], ['CHECKPOINT_FAILED', 6]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6], ['CHECKPOINT_FAILED', 6]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, '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":"510b991d598e7a4259e7767058a3984892dc7f6068210d5add780fbbdada3256","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 = {'cut': seed+1, 'buffer': payload[:], 'delivered': [], 'snapshot': [x for x in payload if x<=seed+1] if phase=='saved' else [], 'durable': phase=='saved'}\n    frames = []\n    observed = []\n    table = {('streaming', 'fence_request'): ('draining', 'freeze_cut'), ('draining', 'record_before_cut'): ('draining', 'deliver_pre_cut'), ('draining', 'record_after_cut'): ('draining', 'buffer_post_cut'), ('draining', 'pre_cut_drained'): ('fenced', 'ack_fence'), ('fenced', 'checkpoint_request'): ('checkpointing', 'snapshot_cut'), ('checkpointing', 'checkpoint_saved'): ('saved', 'report_checkpoint'), ('saved', 'resume'): ('streaming', 'release_buffer_in_order'), ('checkpointing', 'checkpoint_failed'): ('fenced', 'report_failure_keep_buffer'), ('fenced', 'record_after_cut'): ('fenced', 'buffer_post_cut'), ('streaming', 'unsolicited_resume'): ('streaming', 'reject_unfenced')}\n    for event in events:\n        phase, action = table.get((phase, event), (phase, \"reject\"))\n        if action == 'freeze_cut':\n            r['cut']=seed+1\n        elif action == 'deliver_pre_cut':\n            r['delivered'].extend([x for x in payload if x<=r['cut']])\n        elif action == 'buffer_post_cut':\n            r['buffer'].extend([x for x in payload if x>r['cut']])\n        elif action == 'ack_fence':\n            frames.append(['FENCED',r['cut']])\n        elif action == 'snapshot_cut':\n            r['snapshot']=[x for x in payload if x<=r['cut']]\n        elif action == 'report_checkpoint':\n            r['durable']=True; frames.append(['CHECKPOINT',r['cut']])\n        elif action == 'release_buffer_in_order':\n            r['delivered'].extend(r['buffer']); r['buffer']=[]\n        elif action == 'report_failure_keep_buffer':\n            frames.append(['CHECKPOINT_FAILED',r['cut']])\n        elif action == 'reject_unfenced':\n            frames.append(['NOT_FENCED',seed])\n        elif action == 'advance_cut':\n            r['cut']=max(payload)+1\n        elif action == 'deliver_post_cut':\n            r['delivered'].extend([x for x in payload if x>r['cut']])\n        elif action == 'drop_record':\n            r['buffer']=[]\n        elif action == 'deliver_all':\n            r['delivered'].extend(payload)\n        elif action == 'clear_post_cut':\n            r['buffer']=[]\n        elif action == 'snapshot_latest':\n            r['snapshot']=payload[:]\n        elif action == 'resume':\n            r['delivered'].extend(r['buffer']); r['buffer']=[]\n        elif action == 'report_latest_cut':\n            r['durable']=True; frames.append(['CHECKPOINT',max(payload)])\n        elif action == 'release_reverse':\n            r['delivered'].extend(reversed(r['buffer'])); r['buffer']=[]\n        elif action == 'drop_buffer':\n            r['buffer']=[]\n        elif action == 'report_success':\n            r['durable']=True; frames.append(['CHECKPOINT',r['cut']])\n        elif action == 'deliver':\n            r['delivered'].extend(payload)\n        elif action == 'replay_previous':\n            r['delivered'].extend([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: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [1, 2], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 2]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 2, 'buffer': [], 'delivered': [1, 2, 3], 'snapshot': [1, 2], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 2]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 1]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}, {'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [1, 2], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 2]]}, {'phase': 'checkpointing', 'registers': {'cut': 2, 'buffer': [1, 2, 3, 3], 'delivered': [1, 2], 'snapshot': [1, 2], 'durable': False}, 'frames': [['FENCED', 2]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 2, 'buffer': [1, 2, 3], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [1, 2, 3]]]}])], 2: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [2, 3], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 3]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 3, 'buffer': [], 'delivered': [2, 3, 4, 5], 'snapshot': [2, 3], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 3]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 2]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'checkpointing', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5, 4, 5], 'delivered': [], 'snapshot': [2, 3], 'durable': False}, 'frames': [['FENCED', 3]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'checkpointing', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [2, 3], 'durable': False}, 'frames': [['FENCED', 3]]}, {'phase': 'fenced', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5, 4, 5], 'delivered': [2, 3], 'snapshot': [2, 3], 'durable': False}, 'frames': [['FENCED', 3], ['CHECKPOINT_FAILED', 3]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 3, 'buffer': [2, 3, 4, 5], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [2, 3, 4, 5]]]}])], 3: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [3, 4], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 4]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 4, 'buffer': [], 'delivered': [3, 4, 5, 6, 7], 'snapshot': [3, 4], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 4]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 3]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7, 5, 6, 7], 'delivered': [], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4], ['CHECKPOINT_FAILED', 4]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4]]}, {'phase': 'fenced', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4], ['CHECKPOINT_FAILED', 4]]}, {'phase': 'checkpointing', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7, 5, 6, 7], 'delivered': [3, 4], 'snapshot': [3, 4], 'durable': False}, 'frames': [['FENCED', 4], ['CHECKPOINT_FAILED', 4]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 4, 'buffer': [3, 4, 5, 6, 7], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [3, 4, 5, 6, 7]]]}])], 4: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 5]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 5, 'buffer': [], 'delivered': [4, 5, 6, 7, 8, 9], 'snapshot': [4, 5], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 5]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 4]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}, {'phase': 'checkpointing', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5]]}, {'phase': 'fenced', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9, 6, 7, 8, 9], 'delivered': [4, 5], 'snapshot': [4, 5], 'durable': False}, 'frames': [['FENCED', 5], ['CHECKPOINT_FAILED', 5], ['CHECKPOINT_FAILED', 5]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 5, 'buffer': [4, 5, 6, 7, 8, 9], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['reject', [4, 5, 6, 7, 8, 9]]]}])], 5: [('streaming/fence_request', 'streaming', ['fence_request'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_before_cut', 'draining', ['record_before_cut'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/record_after_cut', 'draining', ['record_after_cut'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('draining/pre_cut_drained', 'draining', ['pre_cut_drained'], [{'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}]), ('fenced/checkpoint_request', 'fenced', ['checkpoint_request'], [{'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': []}]), ('checkpointing/checkpoint_saved', 'checkpointing', ['checkpoint_saved'], [{'phase': 'saved', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': True}, 'frames': [['CHECKPOINT', 6]]}]), ('saved/resume', 'saved', ['resume'], [{'phase': 'streaming', 'registers': {'cut': 6, 'buffer': [], 'delivered': [5, 6, 7, 8, 9, 10, 11], 'snapshot': [5, 6], 'durable': True}, 'frames': []}]), ('checkpointing/checkpoint_failed', 'checkpointing', ['checkpoint_failed'], [{'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['CHECKPOINT_FAILED', 6]]}]), ('fenced/record_after_cut', 'fenced', ['record_after_cut'], [{'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}]), ('streaming/unsolicited_resume', 'streaming', ['unsolicited_resume'], [{'phase': 'streaming', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['NOT_FENCED', 5]]}]), ('ordered trace 0', 'streaming', ['fence_request', 'record_after_cut', 'pre_cut_drained', 'record_after_cut', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request', 'checkpoint_failed'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6], ['CHECKPOINT_FAILED', 6]]}]), ('ordered trace 3', 'draining', ['record_before_cut', 'record_after_cut', 'pre_cut_drained', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request', 'checkpoint_failed', 'checkpoint_request'], [{'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'draining', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': []}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'fenced', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6], ['CHECKPOINT_FAILED', 6]]}, {'phase': 'checkpointing', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11, 7, 8, 9, 10, 11], 'delivered': [5, 6], 'snapshot': [5, 6], 'durable': False}, 'frames': [['FENCED', 6], ['CHECKPOINT_FAILED', 6], ['CHECKPOINT_FAILED', 6]]}]), ('empty input', 'streaming', [], []), ('unknown event', 'streaming', ['unsupported'], [{'phase': 'streaming', 'registers': {'cut': 6, 'buffer': [5, 6, 7, 8, 9, 10, 11], 'delivered': [], 'snapshot': [], 'durable': False}, '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-record_fence-fenced-checkpoint_request","generated_at":"2026-09-29T14:40:17.709578+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 fenced, classify checkpoint_request as transition to checkpointing and emit snapshot_cut.","root_cause":"In fenced, the checkpoint request handler runs deliver all and enters streaming; it must instead run snapshot cut and enter checkpointing.","sha256":"5d72e751ede112f78aa79794a4388e8bdb3c0c01a239ac82fafc398f32236ece","title":"Record-stream checkpoint fence controller: fenced / checkpoint request · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.951,"exit_code":1,"observations":[{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"streaming/fence_request","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}}],"check":"draining/record_before_cut","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"draining/record_after_cut","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"draining/pre_cut_drained","expected":[{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"checkpointing","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[1,2,3]}}],"check":"fenced/checkpoint_request","expected":[{"frames":[],"phase":"checkpointing","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[1,2]}}],"passed":false},{"actual":[{"frames":[["CHECKPOINT",2]],"phase":"saved","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":true,"snapshot":[]}}],"check":"checkpointing/checkpoint_saved","expected":[{"frames":[["CHECKPOINT",2]],"phase":"saved","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":true,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"streaming","registers":{"buffer":[],"cut":2,"delivered":[1,2,3],"durable":true,"snapshot":[1,2]}}],"check":"saved/resume","expected":[{"frames":[],"phase":"streaming","registers":{"buffer":[],"cut":2,"delivered":[1,2,3],"durable":true,"snapshot":[1,2]}}],"passed":true},{"actual":[{"frames":[["CHECKPOINT_FAILED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"checkpointing/checkpoint_failed","expected":[{"frames":[["CHECKPOINT_FAILED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"fenced/record_after_cut","expected":[{"frames":[],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[["NOT_FENCED",1]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"streaming/unsolicited_resume","expected":[{"frames":[["NOT_FENCED",1]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"ordered trace 0","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"checkpointing","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[1,2,3]}}],"check":"ordered trace 3","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"checkpointing","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[1,2]}}],"passed":false},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["reject",[1,2,3]]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"unknown event","expected":[{"frames":[["reject",[1,2,3]]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"streaming/fence_request\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/record_before_cut\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/record_after_cut\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/pre_cut_drained\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"passed\": true}, {\"check\": \"fenced/checkpoint_request\", \"actual\": [{\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [1, 2, 3], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [1, 2], \"durable\": false}, \"frames\": []}], \"passed\": false}, {\"check\": \"checkpointing/checkpoint_saved\", \"actual\": [{\"phase\": \"saved\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": true}, \"frames\": [[\"CHECKPOINT\", 2]]}], \"expected\": [{\"phase\": \"saved\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": true}, \"frames\": [[\"CHECKPOINT\", 2]]}], \"passed\": true}, {\"check\": \"saved/resume\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [], \"delivered\": [1, 2, 3], \"snapshot\": [1, 2], \"durable\": true}, \"frames\": []}], \"expected\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [], \"delivered\": [1, 2, 3], \"snapshot\": [1, 2], \"durable\": true}, \"frames\": []}], \"passed\": true}, {\"check\": \"checkpointing/checkpoint_failed\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"CHECKPOINT_FAILED\", 2]]}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"CHECKPOINT_FAILED\", 2]]}], \"passed\": true}, {\"check\": \"fenced/record_after_cut\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"streaming/unsolicited_resume\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"NOT_FENCED\", 1]]}], \"expected\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"NOT_FENCED\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [1, 2, 3], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [1, 2], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"passed\": false}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":48.313,"exit_code":1,"observations":[{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"streaming/fence_request","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}}],"check":"draining/record_before_cut","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"draining/record_after_cut","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"draining/pre_cut_drained","expected":[{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2,3],"durable":false,"snapshot":[]}}],"check":"fenced/checkpoint_request","expected":[{"frames":[],"phase":"checkpointing","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[1,2]}}],"passed":false},{"actual":[{"frames":[["CHECKPOINT",2]],"phase":"saved","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":true,"snapshot":[]}}],"check":"checkpointing/checkpoint_saved","expected":[{"frames":[["CHECKPOINT",2]],"phase":"saved","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":true,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"streaming","registers":{"buffer":[],"cut":2,"delivered":[1,2,3],"durable":true,"snapshot":[1,2]}}],"check":"saved/resume","expected":[{"frames":[],"phase":"streaming","registers":{"buffer":[],"cut":2,"delivered":[1,2,3],"durable":true,"snapshot":[1,2]}}],"passed":true},{"actual":[{"frames":[["CHECKPOINT_FAILED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"checkpointing/checkpoint_failed","expected":[{"frames":[["CHECKPOINT_FAILED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"fenced/record_after_cut","expected":[{"frames":[],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[["NOT_FENCED",1]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"streaming/unsolicited_resume","expected":[{"frames":[["NOT_FENCED",1]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"ordered trace 0","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"streaming","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2,1,2,3],"durable":false,"snapshot":[]}}],"check":"ordered trace 3","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"checkpointing","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[1,2]}}],"passed":false},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["reject",[1,2,3]]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"unknown event","expected":[{"frames":[["reject",[1,2,3]]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"streaming/fence_request\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/record_before_cut\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/record_after_cut\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/pre_cut_drained\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"passed\": true}, {\"check\": \"fenced/checkpoint_request\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2, 3], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [1, 2], \"durable\": false}, \"frames\": []}], \"passed\": false}, {\"check\": \"checkpointing/checkpoint_saved\", \"actual\": [{\"phase\": \"saved\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": true}, \"frames\": [[\"CHECKPOINT\", 2]]}], \"expected\": [{\"phase\": \"saved\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": true}, \"frames\": [[\"CHECKPOINT\", 2]]}], \"passed\": true}, {\"check\": \"saved/resume\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [], \"delivered\": [1, 2, 3], \"snapshot\": [1, 2], \"durable\": true}, \"frames\": []}], \"expected\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [], \"delivered\": [1, 2, 3], \"snapshot\": [1, 2], \"durable\": true}, \"frames\": []}], \"passed\": true}, {\"check\": \"checkpointing/checkpoint_failed\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"CHECKPOINT_FAILED\", 2]]}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"CHECKPOINT_FAILED\", 2]]}], \"passed\": true}, {\"check\": \"fenced/record_after_cut\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"streaming/unsolicited_resume\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"NOT_FENCED\", 1]]}], \"expected\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"NOT_FENCED\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2, 1, 2, 3], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [1, 2], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"passed\": false}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":49.163,"exit_code":0,"observations":[{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"streaming/fence_request","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}}],"check":"draining/record_before_cut","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"draining/record_after_cut","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"draining/pre_cut_drained","expected":[{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"checkpointing","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[1,2]}}],"check":"fenced/checkpoint_request","expected":[{"frames":[],"phase":"checkpointing","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[1,2]}}],"passed":true},{"actual":[{"frames":[["CHECKPOINT",2]],"phase":"saved","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":true,"snapshot":[]}}],"check":"checkpointing/checkpoint_saved","expected":[{"frames":[["CHECKPOINT",2]],"phase":"saved","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":true,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"streaming","registers":{"buffer":[],"cut":2,"delivered":[1,2,3],"durable":true,"snapshot":[1,2]}}],"check":"saved/resume","expected":[{"frames":[],"phase":"streaming","registers":{"buffer":[],"cut":2,"delivered":[1,2,3],"durable":true,"snapshot":[1,2]}}],"passed":true},{"actual":[{"frames":[["CHECKPOINT_FAILED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"checkpointing/checkpoint_failed","expected":[{"frames":[["CHECKPOINT_FAILED",2]],"phase":"fenced","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"fenced/record_after_cut","expected":[{"frames":[],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[["NOT_FENCED",1]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"streaming/unsolicited_resume","expected":[{"frames":[["NOT_FENCED",1]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"ordered trace 0","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true},{"actual":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"checkpointing","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[1,2]}}],"check":"ordered trace 3","expected":[{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[],"phase":"draining","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"fenced","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[]}},{"frames":[["FENCED",2]],"phase":"checkpointing","registers":{"buffer":[1,2,3,3],"cut":2,"delivered":[1,2],"durable":false,"snapshot":[1,2]}}],"passed":true},{"actual":[],"check":"empty input","expected":[],"passed":true},{"actual":[{"frames":[["reject",[1,2,3]]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"check":"unknown event","expected":[{"frames":[["reject",[1,2,3]]],"phase":"streaming","registers":{"buffer":[1,2,3],"cut":2,"delivered":[],"durable":false,"snapshot":[]}}],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"streaming/fence_request\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/record_before_cut\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/record_after_cut\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"draining/pre_cut_drained\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"passed\": true}, {\"check\": \"fenced/checkpoint_request\", \"actual\": [{\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [1, 2], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [1, 2], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"checkpointing/checkpoint_saved\", \"actual\": [{\"phase\": \"saved\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": true}, \"frames\": [[\"CHECKPOINT\", 2]]}], \"expected\": [{\"phase\": \"saved\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": true}, \"frames\": [[\"CHECKPOINT\", 2]]}], \"passed\": true}, {\"check\": \"saved/resume\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [], \"delivered\": [1, 2, 3], \"snapshot\": [1, 2], \"durable\": true}, \"frames\": []}], \"expected\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [], \"delivered\": [1, 2, 3], \"snapshot\": [1, 2], \"durable\": true}, \"frames\": []}], \"passed\": true}, {\"check\": \"checkpointing/checkpoint_failed\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"CHECKPOINT_FAILED\", 2]]}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"CHECKPOINT_FAILED\", 2]]}], \"passed\": true}, {\"check\": \"fenced/record_after_cut\", \"actual\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"expected\": [{\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}], \"passed\": true}, {\"check\": \"streaming/unsolicited_resume\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"NOT_FENCED\", 1]]}], \"expected\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"NOT_FENCED\", 1]]}], \"passed\": true}, {\"check\": \"ordered trace 0\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"passed\": true}, {\"check\": \"ordered trace 3\", \"actual\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [1, 2], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"expected\": [{\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"draining\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": []}, {\"phase\": \"fenced\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}, {\"phase\": \"checkpointing\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3, 3], \"delivered\": [1, 2], \"snapshot\": [1, 2], \"durable\": false}, \"frames\": [[\"FENCED\", 2]]}], \"passed\": true}, {\"check\": \"empty input\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unknown event\", \"actual\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"expected\": [{\"phase\": \"streaming\", \"registers\": {\"cut\": 2, \"buffer\": [1, 2, 3], \"delivered\": [], \"snapshot\": [], \"durable\": false}, \"frames\": [[\"reject\", [1, 2, 3]]]}], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}