Teknium
92189e2d0a
fix: POSIX update pause drains turns first and survives a killed update cleanly
...
Review fixes for the pre-swap gateway pause (independent review of a029ec2):
- Every gateway is drained before the code swap: the control socket's
pause-for-update runs the request_restart drain (the post-update restart's
SIGUSR1 path) and the update waits within the fleet's canonical budget
(_gateway_drain_budget, 1905 s by default) with progress lines. systemd
units and launchd jobs are stopped through their supervisor only after
their drained gateway has exited, which also keeps Restart=/KeepAlive from
relaunching it mid-update. A gateway that does not take the drain gets the
supervisor stop / SIGTERM as before. The request is recorded (stop_sent)
before it is sent and carries no planned-stop marker: the marker watcher
takes the immediate signal-stop path and could fire first. Before: a
supervised gateway got systemctl stop / bootout at once
(restart_drain_timeout=0 cuts an in-flight turn), a bare one was SIGKILLed
after 70 s.
- The pause record stores canonical identities (pause_record.identity), so
recovery recognises a still-live gateway; the native birth stamp stays on
the entry for _alive.
- Supervised posix_units go through drop_never_stopped / split_draining /
backoff / hand-back like every other entry: a killed update no longer owes a
live unit it never stopped, nor relaunches one still draining.
- Unknown cgroup membership (either side unreadable) never authorises
stopping the unit; cgroup v1 name=systemd is read when v2 is absent.
- A record that cannot be written restores the token exactly (fresh or
adopted), so the checkout's tree gate is not armed by a pause that never
happened.
- A replayed bare gateway's environment follows the restart watcher it
replaces: the launch profile's own named home keeps the launcher env (an
exported bot token can be its only credential); every other home and the
multiplexing root get the served-profile factory.
- Resuming a paused unit runs the definition repair the fleet restart runs
first (_repair_unit_without_fatal_exit_park; launchd plist refresh).
- Shared POSIX tests use platforms("posix") instead of a module skipif, so
the macOS lane imports them.
e2e cell (e) now reads the recorded stop request (record stop_sent) instead of
the planned-stop marker, which the drain path no longer writes.
2026-10-07 04:39:00 -07:00
..
2026-10-06 11:17:11 -04:00
2026-10-06 20:11:00 -04:00
2026-10-07 01:01:14 +05:30
2026-10-06 14:23:00 -04:00
2026-10-06 23:13:01 -07:00
2026-10-06 16:08:23 -04:00
2026-09-24 14:47:06 -04:00
2026-10-06 06:22:29 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 06:21:57 -07:00
2026-10-06 04:36:02 -07:00
2026-10-02 04:39:28 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 06:22:29 -07:00
2026-09-28 10:21:41 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 18:00:58 -04:00
2026-10-06 23:14:10 +05:30
2026-10-05 15:36:14 -07:00
2026-10-05 16:37:14 -05:00
2026-10-05 23:33:41 -07:00
2026-10-05 15:36:14 -07:00
2026-10-05 15:36:14 -07:00
2026-10-05 22:38:27 -05:00
2026-09-28 12:43:03 -07:00
2026-10-06 23:14:10 +05:30
2026-10-03 16:30:59 +05:30
2026-10-05 23:33:41 -07:00
2026-10-05 15:36:14 -07:00
2026-10-06 23:14:10 +05:30
2026-10-03 16:30:59 +05:30
2026-10-03 16:30:59 +05:30
2026-10-06 14:22:13 -07:00
2026-09-29 07:44:13 +00:00
2026-10-05 17:34:36 -07:00
2026-09-25 14:22:12 -04:00
2026-10-07 02:29:54 -07:00
2026-09-28 10:21:41 -07:00
2026-09-25 12:07:32 -05:00
2026-09-28 10:21:41 -07:00
2026-09-27 18:19:17 +05:30
2026-10-06 14:22:13 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-10-07 01:35:11 -07:00
2026-10-06 15:15:06 -04:00
2026-10-06 15:15:06 -04:00
2026-09-29 23:54:34 +05:30
2026-10-05 00:23:05 -07:00
2026-10-06 14:22:13 -07:00
2026-10-02 22:47:50 -04:00
2026-10-06 14:22:13 -07:00
2026-10-05 10:20:42 -05:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-26 22:19:53 -05:00
2026-09-28 14:16:18 -07:00
2026-10-03 23:28:02 +05:30
2026-09-30 14:23:52 -05:00
2026-10-04 13:50:13 -05:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-10-06 14:22:13 -07:00
2026-10-03 23:05:48 -07:00
2026-09-28 14:16:18 -07:00
2026-10-06 12:50:31 -07:00
2026-10-02 13:34:54 +05:30
2026-10-05 00:23:05 -07:00
2026-09-28 14:16:18 -07:00
2026-10-03 20:44:07 +05:30
2026-09-29 20:34:45 +05:30
2026-10-07 01:35:11 -07:00
2026-09-28 02:00:41 -07:00
2026-09-28 14:16:18 -07:00
2026-10-06 14:22:13 -07:00
2026-10-03 16:31:09 +05:30
2026-10-05 19:36:32 +05:30
2026-10-06 14:57:23 -05:00
2026-10-06 14:22:13 -07:00
2026-10-03 19:21:54 +05:30
2026-09-28 04:04:23 -07:00
2026-09-29 20:24:19 -04:00
2026-10-07 10:20:18 +05:30
2026-09-30 23:10:24 -05:00
2026-10-06 02:53:00 -07:00
2026-10-03 19:51:54 +05:30
2026-10-05 13:18:19 +05:30
2026-10-06 03:44:49 -07:00
2026-10-06 06:22:28 -07:00
2026-09-26 21:43:07 -05:00
2026-10-03 21:15:17 +05:30
2026-09-28 10:21:41 -07:00
2026-09-29 20:24:19 -04:00
2026-10-05 16:37:14 -05:00
2026-10-05 16:37:14 -05:00
2026-09-28 06:42:00 -07:00
2026-10-06 23:13:01 -07:00
2026-10-02 04:39:28 -07:00
2026-10-07 10:20:18 +05:30
2026-10-04 00:08:20 -07:00
2026-10-02 01:02:00 +05:30
2026-10-06 15:00:21 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-29 07:44:13 +00:00
2026-09-27 01:04:39 +05:30
2026-10-06 14:23:00 -04:00
2026-09-28 13:30:57 -07:00
2026-10-03 21:57:13 -04:00
2026-09-28 13:30:57 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 04:36:02 -07:00
2026-10-03 20:44:07 +05:30
2026-10-04 13:50:13 -05:00
2026-10-02 20:51:34 +00:00
2026-09-28 10:21:41 -07:00
2026-09-28 12:43:03 -07:00
2026-10-01 04:50:26 -05:00
2026-10-06 12:28:00 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 14:16:18 -07:00
2026-10-03 16:31:23 +05:30
2026-10-07 11:19:10 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-10-03 16:31:23 +05:30
2026-10-07 11:19:10 +05:30
2026-09-28 03:37:09 -07:00
2026-09-28 03:37:09 -07:00
2026-10-06 15:15:06 -04:00
2026-10-07 11:19:10 +05:30
2026-10-07 11:19:10 +05:30
2026-10-04 00:08:20 -07:00
2026-09-28 12:24:52 -05:00
2026-10-06 03:44:49 -07:00
2026-09-25 14:22:12 -04:00
2026-09-25 14:22:12 -04:00
2026-10-05 16:00:48 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 14:23:00 -04:00
2026-09-25 16:28:14 -05:00
2026-10-06 05:44:21 -07:00
2026-10-06 06:22:27 -07:00
2026-10-06 06:18:39 -07:00
2026-10-03 23:05:48 -07:00
2026-09-29 15:45:52 +05:30
2026-10-07 01:35:11 -07:00
2026-09-28 14:16:18 -07:00
2026-10-06 12:31:21 -07:00
2026-10-06 11:10:43 -07:00
2026-10-06 11:10:43 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-26 17:04:25 -05:00
2026-09-24 11:50:30 -04:00
2026-10-05 16:06:32 -07:00
2026-10-02 04:39:28 -07:00
2026-10-05 00:22:31 -07:00
2026-10-06 14:57:23 -05:00
2026-09-28 05:37:55 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 12:43:03 -07:00
2026-10-03 22:32:13 -04:00
2026-10-05 23:33:41 -07:00
2026-10-05 16:41:47 -05:00
2026-10-02 22:40:31 -05:00
2026-10-06 17:23:23 -04:00
2026-10-06 17:22:46 -04:00
2026-09-24 09:40:41 -04:00
2026-10-05 23:33:41 -07:00
2026-10-04 00:10:54 +05:30
2026-10-06 23:14:10 +05:30
2026-09-28 10:21:41 -07:00
2026-10-06 02:53:56 -07:00
2026-09-28 10:21:41 -07:00
2026-10-06 15:15:06 -04:00
2026-09-28 10:21:41 -07:00
2026-10-04 00:08:20 -07:00
2026-10-03 10:26:12 -07:00
2026-10-01 10:46:45 -07:00
2026-09-28 10:21:41 -07:00
2026-10-03 10:15:11 -07:00
2026-10-03 10:15:11 -07:00
2026-10-03 10:15:11 -07:00
2026-10-03 10:15:11 -07:00
2026-10-07 01:01:14 +05:30
2026-10-03 10:15:11 -07:00
2026-10-03 10:15:11 -07:00
2026-09-28 12:43:03 -07:00
2026-10-03 13:34:08 -07:00
2026-10-04 17:53:20 -07:00
2026-09-28 14:16:18 -07:00
2026-10-04 12:08:04 -07:00
2026-10-06 14:23:00 -04:00
2026-09-24 14:08:21 -04:00
2026-10-05 17:24:40 -07:00
2026-09-24 11:50:29 -04:00
2026-10-06 11:10:43 -07:00
2026-10-06 11:10:43 -07:00
2026-10-06 17:22:18 -04:00
2026-10-03 10:15:11 -07:00
2026-10-06 17:22:18 -04:00
2026-09-25 21:19:04 +05:30
2026-10-06 17:22:18 -04:00
2026-10-06 17:22:18 -04:00
2026-10-05 17:34:36 -07:00
2026-10-05 17:20:30 -07:00
2026-10-05 01:26:23 -07:00
2026-10-05 17:11:30 -07:00
2026-10-05 17:34:36 -07:00
2026-10-05 20:07:25 +05:30
2026-10-05 17:20:30 -07:00
2026-09-25 14:22:12 -04:00
2026-10-06 11:10:43 -07:00
2026-09-25 14:22:12 -04:00
2026-10-05 17:34:36 -07:00
2026-10-01 16:22:28 +05:30
2026-10-01 22:35:29 -07:00
2026-10-05 16:41:08 -05:00
2026-10-04 00:08:20 -07:00
2026-10-02 01:29:41 -07:00
2026-09-28 10:21:41 -07:00
2026-10-03 16:29:29 +05:30
2026-09-28 04:04:23 -07:00
2026-10-06 14:22:13 -07:00
2026-10-07 11:27:35 +05:30
2026-09-29 20:57:57 -05:00
2026-10-05 16:42:57 -05:00
2026-10-06 12:46:06 -04:00
2026-09-28 12:43:03 -07:00
2026-09-27 03:41:42 -07:00
2026-10-06 08:13:51 -04:00
2026-10-06 23:54:51 -05:00
2026-09-28 04:44:29 -07:00
2026-09-28 03:34:07 -07:00
2026-09-28 10:21:41 -07:00
2026-09-24 11:50:30 -04:00
2026-10-05 12:37:47 +05:30
2026-09-24 12:30:00 -04:00
2026-10-03 23:28:02 +05:30
2026-09-26 20:40:40 -05:00
2026-10-04 12:05:37 +05:30
2026-09-25 10:46:54 -05:00
2026-09-28 15:54:01 +05:30
2026-09-28 21:03:09 -04:00
2026-09-27 20:49:04 +05:30
2026-09-24 18:08:24 +05:30
2026-10-03 19:21:54 +05:30
2026-09-28 08:33:43 +00:00
2026-09-28 12:43:03 -07:00
2026-10-04 00:08:20 -07:00
2026-09-28 12:33:01 -07:00
2026-10-02 02:58:18 +05:30
2026-10-06 11:10:43 -07:00
2026-10-06 11:10:43 -07:00
2026-09-25 20:00:57 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 14:16:18 -07:00
2026-10-06 04:36:02 -07:00
2026-09-28 21:02:35 -04:00
2026-10-07 04:39:00 -07:00
2026-09-24 14:23:48 -04:00
2026-10-01 22:35:29 -07:00
2026-09-25 14:22:12 -04:00
2026-09-28 10:21:41 -07:00
2026-09-29 15:28:19 -05:00
2026-10-01 22:03:11 -07:00
2026-09-27 07:43:23 -05:00
2026-10-01 22:27:03 -07:00
2026-09-28 19:02:20 +05:30
2026-09-24 11:12:27 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 14:16:18 -07:00
2026-09-26 17:09:16 -05:00
2026-10-06 22:01:38 -07:00
2026-10-06 12:08:49 -07:00
2026-10-06 12:08:49 -07:00
2026-10-03 16:29:54 +05:30
2026-10-02 18:06:40 +00:00
2026-09-27 14:09:15 -05:00
2026-10-06 04:36:02 -07:00
2026-10-07 04:39:00 -07:00
2026-10-06 03:44:49 -07:00
2026-09-26 20:07:47 +05:30
2026-10-06 04:36:02 -07:00
2026-10-06 06:21:10 -07:00
2026-10-06 03:44:49 -07:00
2026-10-07 04:39:00 -07:00
2026-10-06 06:22:27 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:27:57 -07:00
2026-10-07 04:39:00 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:18:39 -07:00
2026-10-07 04:39:00 -07:00
2026-10-06 06:22:29 -07:00
2026-10-07 04:39:00 -07:00
2026-10-07 04:39:00 -07:00
2026-09-24 14:08:22 -04:00
2026-10-06 06:22:28 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 06:18:39 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:22:29 -07:00
2026-10-06 03:44:49 -07:00
2026-10-06 06:18:39 -07:00
2026-09-28 05:33:25 -07:00
2026-10-07 04:39:00 -07:00
2026-10-06 03:44:49 -07:00
2026-09-27 14:09:15 -05:00
2026-10-06 03:44:49 -07:00
2026-10-06 14:23:00 -04:00
2026-10-06 04:36:02 -07:00
2026-09-28 12:43:03 -07:00
2026-10-06 12:50:31 -07:00
2026-10-06 11:15:27 -04:00
2026-09-28 10:21:41 -07:00
2026-10-06 12:59:08 -05:00
2026-10-06 12:27:22 -04:00
2026-10-03 16:54:59 +05:30
2026-10-07 01:35:11 -07:00
2026-10-06 12:27:22 -04:00
2026-10-06 11:15:27 -04:00
2026-10-06 12:30:01 -04:00
2026-10-06 17:22:39 -04:00
2026-10-06 14:23:00 -04:00
2026-10-01 23:27:08 -07:00
2026-10-04 00:08:20 -07:00
2026-10-05 15:36:14 -07:00
2026-10-03 19:51:54 +05:30
2026-09-28 12:18:58 -07:00
2026-10-03 23:05:48 -07:00
2026-10-06 04:36:02 -07:00
2026-10-06 14:23:00 -04:00
2026-10-02 02:54:18 +05:30
2026-09-28 10:21:41 -07:00
2026-10-02 10:42:07 -04:00
2026-10-06 21:52:50 -05:00
2026-10-02 10:42:07 -04:00
2026-10-03 22:03:44 +05:30
2026-10-03 22:03:44 +05:30