kshitijk4poor
ed8f8498d3
fix(gateway): a degraded boot stays degraded and still counts as a completed restart
...
Gate review on the stack:
- `hermes gateway restart` under systemd only accepted `gateway_state == "running"`
as proof of the replacement; a boot with a parked platform stamps `degraded` for
its whole life, so every restart/update on such a host waited out the 60 s+
budget and reported a false failure while the gateway was serving. The verifier
now accepts `degraded` as restarted and prints one DEGRADED warning.
- Drain release and scale-to-zero wake re-stamped `running` unconditionally, wiping
the parked-platform signal after the first `.drain_request.json` cycle. Every
"we are serving" stamp now goes through `_serving_state()`; the mixed fatal +
retryable boot path sets the flag too (it fell through as a plain run before).
`_startup_parked_platforms` is a bool — the joined error text was only ever logged.
- `_wait_for_tcp_port_free`: an unresolvable or unreachable configured host raised
a non-refused OSError on every probe and burned the full 10 s wait; only a
connect timeout means "listener alive", anything else means nothing to wait for.
- Windows `restart()` replaces its blind `time.sleep(1.0)` "let Windows release the
port" with the same configured-address wait.
- The api_server bind retry rebuilds the AppRunner per EADDRINUSE attempt instead of
calling aiohttp's private `_unreg_site`; attempt count is a named constant.
Test: a `degraded` replacement is reported as restarted (red on the previous head).
E2E re-run: predecessor releases the port 0.5 s after the first bind → bound on the
third attempt (+0.61 s), connect() True.
2026-09-19 02:06:55 +05:30
..
2026-09-18 09:18:00 -07:00
2026-09-15 20:44:42 +05:30
2026-09-16 06:39:15 -05:00
2026-09-17 00:02:09 -07:00
2026-09-18 10:32:48 -07:00
2026-09-15 20:44:42 +05:30
2026-09-16 23:22:49 +05:30
2026-09-15 20:44:42 +05:30
2026-09-15 20:44:42 +05:30
2026-09-16 17:16:06 -07:00
2026-09-18 11:01:52 -07:00
2026-09-16 16:48:42 -07:00
2026-09-18 10:17:59 -07:00
2026-09-17 09:02:26 -07:00
2026-09-16 14:34:59 -07:00
2026-09-16 17:16:06 -07:00
2026-09-17 00:34:50 -05:00
2026-09-16 17:49:48 -07:00
2026-09-16 16:53:40 -07:00
2026-09-15 21:46:41 -07:00
2026-09-15 18:24:22 -07:00
2026-09-15 18:24:22 -07:00
2026-09-18 10:24:15 -07:00
2026-09-16 17:23:44 -07:00
2026-09-15 20:47:06 +05:30
2026-09-18 09:35:49 -07:00
2026-09-17 00:02:09 -07:00
2026-09-18 09:18:00 -07:00
2026-09-18 09:18:00 -07:00
2026-09-18 10:00:29 -07:00
2026-09-16 17:15:38 -07:00
2026-09-15 06:29:50 -07:00
2026-09-15 18:28:49 -07:00
2026-09-15 21:47:48 -07:00
2026-09-18 09:41:02 -07:00
2026-09-18 12:44:32 -07:00
2026-09-18 09:41:02 -07:00
2026-09-16 17:16:06 -07:00
2026-09-18 17:10:12 +02:00
2026-09-18 17:10:12 +02:00
2026-09-18 12:46:54 -07:00
2026-09-18 12:46:54 -07:00
2026-09-16 16:48:42 -07:00
2026-09-16 17:03:16 -07:00
2026-09-18 09:38:01 -07:00
2026-09-17 09:04:11 -07:00
2026-09-18 09:38:01 -07:00
2026-09-16 17:02:02 -07:00
2026-09-16 23:13:20 -04:00
2026-09-16 16:48:42 -07:00
2026-09-17 08:44:06 -07:00
2026-09-16 23:13:20 -04:00
2026-09-17 09:19:19 -07:00
2026-09-18 10:38:08 -07:00
2026-09-16 17:44:36 -07:00
2026-09-18 09:56:28 -07:00
2026-09-16 17:02:34 -07:00
2026-09-18 21:47:13 +05:30
2026-09-16 23:19:45 +05:30
2026-09-18 12:44:32 -07:00
2026-09-17 19:00:40 -04:00
2026-09-16 00:33:03 -07:00
2026-09-16 08:57:18 -07:00
2026-09-18 17:10:12 +02:00
2026-09-16 16:48:42 -07:00
2026-09-18 12:49:13 -07:00
2026-09-18 09:25:59 -07:00
2026-09-19 00:43:49 +05:30
2026-09-19 02:06:55 +05:30
2026-09-16 16:18:17 -05:00
2026-09-18 12:44:04 -07:00
2026-09-19 02:06:55 +05:30
2026-09-18 09:28:39 -07:00
2026-09-18 10:00:29 -07:00
2026-09-16 16:18:17 -05:00
2026-09-18 10:15:11 -07:00
2026-09-18 01:43:35 +05:30
2026-09-15 18:33:43 -07:00
2026-09-19 00:10:41 +05:30
2026-09-18 09:29:44 -07:00
2026-09-15 18:34:40 -07:00
2026-09-15 22:47:03 -07:00
2026-09-18 10:21:42 -07:00
2026-09-18 09:48:41 -07:00
2026-09-18 09:29:44 -07:00
2026-09-18 09:50:19 -07:00
2026-09-18 10:21:42 -07:00
2026-09-18 09:32:02 -07:00
2026-09-17 08:55:01 -07:00
2026-09-18 09:32:02 -07:00
2026-09-18 10:04:23 -07:00
2026-09-15 18:35:09 -07:00
2026-09-16 16:48:42 -07:00
2026-09-17 08:52:53 -07:00
2026-09-16 16:48:42 -07:00
2026-09-15 18:35:32 -07:00
2026-09-18 11:03:57 -07:00
2026-09-18 12:48:16 -07:00
2026-09-16 00:35:00 -07:00
2026-09-16 16:51:45 -07:00
2026-09-18 10:10:05 -07:00
2026-09-16 16:56:22 -07:00
2026-09-16 14:32:54 -04:00
2026-09-18 09:19:04 -07:00
2026-09-17 08:44:33 -07:00
2026-09-17 08:44:33 -07:00
2026-09-18 17:09:28 +02:00
2026-09-16 15:16:09 -05:00
2026-09-16 15:54:47 -05:00
2026-09-18 09:45:32 -07:00
2026-09-18 12:47:49 -07:00
2026-09-15 19:06:54 -07:00
2026-09-18 09:23:13 -07:00
2026-09-16 17:11:01 -07:00
2026-09-18 09:41:02 -07:00
2026-09-18 11:01:52 -07:00
2026-09-17 08:55:04 -07:00
2026-09-16 17:06:26 -07:00
2026-09-16 17:02:56 -07:00
2026-09-18 15:40:37 +05:30
2026-09-18 09:52:03 -07:00
2026-09-15 20:44:42 +05:30
2026-09-15 18:35:59 -07:00
2026-09-18 10:12:25 -07:00
2026-09-18 11:01:52 -07:00
2026-09-16 18:12:34 -07:00
2026-09-16 17:03:25 -07:00
2026-09-18 11:01:52 -07:00
2026-09-17 09:04:11 -07:00
2026-09-18 09:50:52 -07:00
2026-09-16 17:51:11 -07:00
2026-09-18 17:09:28 +02:00
2026-09-16 14:18:39 -07:00
2026-09-15 15:11:33 -07:00
2026-09-17 09:03:29 -07:00
2026-09-17 18:36:20 -07:00
2026-09-18 10:01:01 -07:00
2026-09-17 00:11:27 -07:00
2026-09-16 15:47:44 -07:00
2026-09-18 09:43:19 -07:00
2026-09-15 18:48:59 -07:00
2026-09-16 15:47:44 -07:00
2026-09-18 09:43:19 -07:00
2026-09-18 09:43:19 -07:00
2026-09-16 16:48:42 -07:00
2026-09-16 14:34:22 -07:00
2026-09-16 16:44:53 -07:00
2026-09-15 06:22:15 -07:00
2026-09-16 14:21:14 -07:00
2026-09-16 14:34:22 -07:00
2026-09-19 01:43:14 +05:30
2026-09-18 10:18:40 -07:00
2026-09-18 15:40:37 +05:30
2026-09-17 08:53:48 -07:00
2026-09-18 15:40:37 +05:30
2026-09-15 06:36:19 -07:00
2026-09-18 10:29:13 -07:00
2026-09-18 01:43:35 +05:30
2026-09-15 21:46:37 -07:00
2026-09-17 09:06:59 -07:00
2026-09-18 12:52:36 -07:00
2026-09-18 09:38:01 -07:00
2026-09-18 17:09:28 +02:00
2026-09-17 14:24:53 -04:00
2026-09-17 00:34:50 -05:00
2026-09-18 10:20:32 -07:00
2026-09-15 18:28:03 -07:00
2026-09-18 09:55:21 -07:00
2026-09-19 00:24:50 +05:30
2026-09-16 10:27:34 -07:00
2026-09-16 17:02:13 -07:00
2026-09-18 10:38:41 -07:00
2026-09-16 17:49:48 -07:00
2026-09-16 06:39:15 -05:00
2026-09-15 18:25:46 -07:00
2026-09-18 12:49:40 -07:00
2026-09-18 21:47:13 +05:30
2026-09-18 09:47:06 -07:00
2026-09-18 10:45:07 -07:00
2026-09-17 00:02:09 -07:00
2026-09-15 22:05:38 -07:00
2026-09-15 21:46:41 -07:00
2026-09-18 12:51:22 -07:00
2026-09-18 09:38:01 -07:00
2026-09-18 09:38:34 -07:00
2026-09-18 09:49:46 -07:00
2026-09-19 01:44:53 +05:30
2026-09-18 10:15:11 -07:00
2026-09-16 17:58:25 +00:00
2026-09-15 18:55:47 -07:00
2026-09-18 21:47:13 +05:30
2026-09-16 16:42:47 -07:00
2026-09-15 19:04:00 -07:00
2026-09-17 00:02:09 -07:00
2026-09-16 17:13:56 -07:00
2026-09-17 00:02:09 -07:00
2026-09-17 00:02:09 -07:00
2026-09-17 08:44:06 -07:00
2026-09-16 17:00:50 -07:00
2026-09-15 18:48:35 -07:00
2026-09-18 12:47:23 -07:00
2026-09-16 17:04:46 -07:00
2026-09-18 12:44:04 -07:00
2026-09-15 18:48:35 -07:00
2026-09-17 00:02:09 -07:00
2026-09-15 19:28:39 -07:00
2026-09-17 00:02:09 -07:00
2026-09-18 12:47:23 -07:00
2026-09-18 17:09:28 +02:00
2026-09-17 00:02:09 -07:00
2026-09-18 17:09:28 +02:00
2026-09-18 09:38:01 -07:00
2026-09-16 17:13:56 -07:00
2026-09-17 00:02:09 -07:00
2026-09-16 17:13:56 -07:00
2026-09-18 01:43:35 +05:30
2026-09-16 16:48:42 -07:00
2026-09-16 14:21:14 -07:00
2026-09-16 16:48:42 -07:00
2026-09-18 10:32:15 -07:00
2026-09-16 16:48:42 -07:00
2026-09-18 10:18:40 -07:00
2026-09-16 17:11:08 -07:00
2026-09-16 16:58:22 -07:00
2026-09-18 12:46:54 -07:00
2026-09-18 10:18:40 -07:00
2026-09-15 18:54:51 -07:00
2026-09-17 00:34:50 -05:00
2026-09-16 14:34:22 -07:00
2026-09-16 14:34:22 -07:00
2026-09-17 20:33:31 +05:30
2026-09-18 12:52:36 -07:00
2026-09-18 09:25:59 -07:00
2026-09-16 16:48:42 -07:00
2026-09-15 18:27:06 -07:00
2026-09-16 16:43:08 -07:00
2026-09-15 18:27:06 -07:00
2026-09-16 14:34:59 -07:00