__PRE_STATE__ date_utc=2026-07-11T10:48:21Z endpoint_fingerprint_pre=7398c52bdd06da0d7e1a03769e49d0859fdf58b153278a5f8a63a4e9b50fa53b cron_fingerprint_pre=d708ea7f7dfc73ad53172e27f08401321abc6beab0e7d86add033b808993bcea old_endpoint_vpn2=109.248.198.4:37129 quarantine_lines_pre=1 daily_counter_pre=0 watcher_running_pre=true watcher_enabled_pre=true watcher_exists=true dispatcher_exists=true adapter_exists=true planner_exists=true helper_exists=true endpoint_pre.vpn1=178.215.227.13:44408 endpoint_pre.vpn2=109.248.198.4:37129 endpoint_pre.vpn3=95.211.68.119:45176 endpoint_pre.vpn4=78.31.250.16:41729 endpoint_pre.vpn5=157.173.27.69:41797 rollback=/root/rollback-step050e-real-repair-proof-20260711-104821.sh __PRE_DRYRUNS__ dispatcher_before_json_begin { "schema": "router-egress-recovery-dispatcher-v1", "mode": "--dry-run", "slot": "egress2", "reason_input": "health_fail", "iface": "vpn2", "candidate_endpoint": "151.236.30.139:33998", "adapter_dryrun_decision": "dry_run_ok", "decision": "dry_run_ok", "reason": "dispatcher_ready", "apply_performed": false, "required_dispatch_confirm": "DISPATCH_egress2_151.236.30.139:33998", "safety": { "dry_run_no_uci_set": true, "dry_run_no_ifup_ifdown": true, "commit_requires_dispatch_confirm": true } } dispatcher_before_json_end planner_before_json_begin { "schema": "router-egress-hmn-plan-top5-v2", "decision": "plan_ok", "pool": "/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv", "pool_mtime_epoch": 1783702742, "quarantine_enabled": true, "quarantine_excluded_count": 0, "duplicate_excluded_count": 0, "desired_count": 5, "changes_count": 1, "plan": [ {"slot":"egress1","iface":"vpn1","current":"178.215.227.13:44408","target":"178.215.227.13:44408","change":false,"target_rank":"4","target_avg_ms":"50.900"} , {"slot":"egress2","iface":"vpn2","current":"109.248.198.4:37129","target":"192.121.163.235:42530","change":true,"target_rank":"1","target_avg_ms":"39.008"} , {"slot":"egress3","iface":"vpn3","current":"95.211.68.119:45176","target":"95.211.68.119:45176","change":false,"target_rank":"2","target_avg_ms":"44.271"} , {"slot":"egress4","iface":"vpn4","current":"78.31.250.16:41729","target":"78.31.250.16:41729","change":false,"target_rank":"3","target_avg_ms":"50.697"} , {"slot":"egress5","iface":"vpn5","current":"157.173.27.69:41797","target":"157.173.27.69:41797","change":false,"target_rank":"5","target_avg_ms":"56.803"} ] } planner_before_json_end __STOP_WATCHER_FOR_DETERMINISTIC_TEST__ watcher_running_after_stop=false __INTENTIONAL_BREAK_VPN2__ vpn2_iface_exists_after_ifdown=false broken_vpn2_strict_ok=false __WATCHER_REAL_CYCLES__ watcher_cycle_1_json_begin { "schema": "router-egress-health-repair-watch-v2", "mode": "--commit", "run_mode": "once", "slots": [ {"slot":"egress1","iface":"vpn1","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress2","iface":"vpn2","status_ok":false,"fail_count":1,"decision":"fail_observed_below_threshold","action":"none","required_confirm":""}, {"slot":"egress3","iface":"vpn3","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress4","iface":"vpn4","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress5","iface":"vpn5","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""} ], "any_action": false } watcher_cycle_1_json_end cycle_1_endpoint_vpn2=109.248.198.4:37129 cycle_1_repaired_and_strict=false watcher_cycle_2_json_begin { "schema": "router-egress-health-repair-watch-v2", "mode": "--commit", "run_mode": "once", "slots": [ {"slot":"egress1","iface":"vpn1","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress2","iface":"vpn2","status_ok":false,"fail_count":2,"decision":"commit_ok","action":"commit_dispatch","required_confirm":"DISPATCH_egress2_151.236.30.139:33998"}, {"slot":"egress3","iface":"vpn3","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress4","iface":"vpn4","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress5","iface":"vpn5","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""} ], "any_action": true } watcher_cycle_2_json_end cycle_2_endpoint_vpn2=151.236.30.139:33998 cycle_2_repaired_and_strict=true cycle_repaired=true __POST_REPAIR_STATE__ new_endpoint_vpn2=151.236.30.139:33998 endpoint_changed=true quarantine_lines_post=2 daily_counter_post=1 latest_quarantine_ts_old=1783766954 state_last_repair_old_endpoint=109.248.198.4:37129 state_last_repair_new_endpoint=151.236.30.139:33998 state_last_repair_egress=egress2 state_last_repair_iface=vpn2 state_daily_repair_count=1 __PLANNER_AFTER_REPAIR__ planner_after_json_begin { "schema": "router-egress-hmn-plan-top5-v2", "decision": "plan_ok", "pool": "/root/hmn/cache/ok-awg1-strict-foreign-latest.tsv", "pool_mtime_epoch": 1783702742, "quarantine_enabled": true, "quarantine_excluded_count": 1, "duplicate_excluded_count": 0, "desired_count": 5, "changes_count": 1, "plan": [ {"slot":"egress1","iface":"vpn1","current":"178.215.227.13:44408","target":"178.215.227.13:44408","change":false,"target_rank":"4","target_avg_ms":"50.900"} , {"slot":"egress2","iface":"vpn2","current":"151.236.30.139:33998","target":"192.121.163.235:42530","change":true,"target_rank":"1","target_avg_ms":"39.008"} , {"slot":"egress3","iface":"vpn3","current":"95.211.68.119:45176","target":"95.211.68.119:45176","change":false,"target_rank":"2","target_avg_ms":"44.271"} , {"slot":"egress4","iface":"vpn4","current":"78.31.250.16:41729","target":"78.31.250.16:41729","change":false,"target_rank":"3","target_avg_ms":"50.697"} , {"slot":"egress5","iface":"vpn5","current":"157.173.27.69:41797","target":"157.173.27.69:41797","change":false,"target_rank":"5","target_avg_ms":"56.803"} ] } planner_after_json_end __RESTART_WATCHER__ watcher_running_post=true watcher_enabled_post=true watcher_once_post_json_begin { "schema": "router-egress-health-repair-watch-v2", "mode": "--dry-run", "run_mode": "once", "slots": [ {"slot":"egress1","iface":"vpn1","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress2","iface":"vpn2","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress3","iface":"vpn3","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress4","iface":"vpn4","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""}, {"slot":"egress5","iface":"vpn5","status_ok":true,"fail_count":0,"decision":"healthy","action":"none","required_confirm":""} ], "any_action": false } watcher_once_post_json_end __FINAL_STRICT_AND_ROUTES__ iface.vpn1.exists=true strict.vpn1=true iface.vpn2.exists=true strict.vpn2=true iface.vpn3.exists=true strict.vpn3=true iface.vpn4.exists=true strict.vpn4=true iface.vpn5.exists=true strict.vpn5=true table201_has_route=true table202_has_route=true table203_has_route=true table204_has_route=true table205_has_route=true endpoint_final.vpn1=178.215.227.13:44408 endpoint_final.vpn2=151.236.30.139:33998 endpoint_final.vpn3=95.211.68.119:45176 endpoint_final.vpn4=78.31.250.16:41729 endpoint_final.vpn5=157.173.27.69:41797 all_strict_final=true endpoint_fingerprint_post=720e542d3d50d48894956385ba15d5e0573b4f45b7a00705b15c2ae7b9091a8a cron_fingerprint_post=d708ea7f7dfc73ad53172e27f08401321abc6beab0e7d86add033b808993bcea production_network_config_changed=true real_repair_apply_performed=true services_restarted=true