__PRE_STATE__ date_utc=2026-07-11T11:09:37Z endpoint_fingerprint_pre=720e542d3d50d48894956385ba15d5e0573b4f45b7a00705b15c2ae7b9091a8a cron_fingerprint_pre=d708ea7f7dfc73ad53172e27f08401321abc6beab0e7d86add033b808993bcea helper_exists=true runner_exists=true hook_exists=true hook_init_exists=true hook_conf_exists=true watcher_exists=true planner_exists=true prod_state_dir=/var/lib/router-egress-recovery prod_daily_counter_clean_pre=1 prod_quarantine_lines_pre=2 prod_latest_quarantine_ts_old=1783766954 prod_state_last_repair_old=109.248.198.4:37129 prod_state_last_repair_new=151.236.30.139:33998 prod_state_last_repair_egress=egress2 prod_state_last_repair_iface=vpn2 vpn2_endpoint=151.236.30.139:33998 expected_old_endpoint=109.248.198.4:37129 expected_repaired_endpoint=151.236.30.139:33998 hook_enabled=true hook_running=true watcher_enabled=true watcher_running=true endpoint_pre.vpn1=178.215.227.13:44408 endpoint_pre.vpn2=151.236.30.139:33998 endpoint_pre.vpn3=95.211.68.119:45176 endpoint_pre.vpn4=78.31.250.16:41729 endpoint_pre.vpn5=157.173.27.69:41797 __RUNNER_REAL_DRYRUN_CLEAN_ENV__ runner_real_json_begin { "schema": "router-egress-emergency-refresh-v1", "mode": "dry-run", "decision": "below_threshold_noop", "reason": "daily_fail_count_below_threshold", "daily_fail_count": 1, "daily_fail_threshold": 5, "threshold_reached": false, "force": false, "cooldown_seconds": 600, "cooldown_remaining": 0, "healthy_vpn_slots": 5, "commit_enabled": false, "direct_failopen_enabled": false, "direct_failopen_action": "disabled_not_allowed_in_step050f", "helper_ok": true, "refresh_cmd": "/root/hmn/hmn-refresh-pool-safe.sh", "refresh_cmd_exists": true, "planner_cmd": "/usr/local/sbin/router-egress-hmn-plan-top5.sh", "planner_cmd_exists": true, "rebalance_apply_cmd": "/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh", "rebalance_apply_cmd_exists": true, "watcher_cmd": "/usr/local/sbin/router-egress-health-repair-watch.sh", "watcher_cmd_exists": true, "last_emergency_refresh_status": "NONE", "last_emergency_refresh_epoch": 0 } runner_real_json_end __HOOK_REAL_DRYRUN_CLEAN_ENV__ hook_real_json_begin { "schema": "router-egress-emergency-refresh-v1", "mode": "dry-run", "decision": "below_threshold_noop", "reason": "daily_fail_count_below_threshold", "daily_fail_count": 1, "daily_fail_threshold": 5, "threshold_reached": false, "force": false, "cooldown_seconds": 600, "cooldown_remaining": 0, "healthy_vpn_slots": 5, "commit_enabled": false, "direct_failopen_enabled": false, "direct_failopen_action": "disabled_not_allowed_in_step050f", "helper_ok": true, "refresh_cmd": "/root/hmn/hmn-refresh-pool-safe.sh", "refresh_cmd_exists": true, "planner_cmd": "/usr/local/sbin/router-egress-hmn-plan-top5.sh", "planner_cmd_exists": true, "rebalance_apply_cmd": "/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh", "rebalance_apply_cmd_exists": true, "watcher_cmd": "/usr/local/sbin/router-egress-health-repair-watch.sh", "watcher_cmd_exists": true, "last_emergency_refresh_status": "NONE", "last_emergency_refresh_epoch": 0 } hook_real_json_end __TEMP_THRESHOLD_HOOK_DRYRUN_ISOLATED__ temp_counter_seeded=5 hook_temp_json_begin { "schema": "router-egress-emergency-refresh-v1", "mode": "dry-run", "decision": "would_run_emergency_refresh", "reason": "threshold_or_force_reached_no_commit_in_dry_run", "daily_fail_count": 5, "daily_fail_threshold": 5, "threshold_reached": true, "force": false, "cooldown_seconds": 600, "cooldown_remaining": 0, "healthy_vpn_slots": 5, "commit_enabled": false, "direct_failopen_enabled": false, "direct_failopen_action": "disabled_not_allowed_in_step050f", "helper_ok": true, "refresh_cmd": "/root/hmn/hmn-refresh-pool-safe.sh", "refresh_cmd_exists": true, "planner_cmd": "/usr/local/sbin/router-egress-hmn-plan-top5.sh", "planner_cmd_exists": true, "rebalance_apply_cmd": "/usr/local/sbin/router-egress-hmn-rebalance-top5-apply.sh", "rebalance_apply_cmd_exists": true, "watcher_cmd": "/usr/local/sbin/router-egress-health-repair-watch.sh", "watcher_cmd_exists": true, "last_emergency_refresh_status": "NONE", "last_emergency_refresh_epoch": 0 } hook_temp_json_end temp_state_removed=true __PLANNER_AND_WATCHER__ planner_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_json_end watcher_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_json_end __POST_STATE__ endpoint_fingerprint_post=720e542d3d50d48894956385ba15d5e0573b4f45b7a00705b15c2ae7b9091a8a cron_fingerprint_post=d708ea7f7dfc73ad53172e27f08401321abc6beab0e7d86add033b808993bcea prod_daily_counter_clean_post=1 prod_quarantine_lines_post=2 prod_latest_quarantine_ts_old_post=1783766954 iface.vpn1.exists=true endpoint_post.vpn1=178.215.227.13:44408 strict.vpn1=true iface.vpn2.exists=true endpoint_post.vpn2=151.236.30.139:33998 strict.vpn2=true iface.vpn3.exists=true endpoint_post.vpn3=95.211.68.119:45176 strict.vpn3=true iface.vpn4.exists=true endpoint_post.vpn4=78.31.250.16:41729 strict.vpn4=true iface.vpn5.exists=true endpoint_post.vpn5=157.173.27.69:41797 strict.vpn5=true table201_has_route=true table202_has_route=true table203_has_route=true table204_has_route=true table205_has_route=true hook_enabled_post=true hook_running_post=true watcher_enabled_post=true watcher_running_post=true production_network_config_changed=false refresh_ran=false rebalance_apply_ran=false direct_failopen_enabled=false hook_left_installed=true