Neil and Orca
09fae31270
fix(daemon): bound the POSIX evidence read and re-verify the pid it describes
...
Round-six follow-ups, none destructive.
The process-table read had a deadline on Windows but not on POSIX, where the
shared reader's ps timeout does not cover queueing behind an in-flight scan —
so the one step that runs after the grace window could still outlast it.
The pid handed to that read was verified before the grace window, which is
long enough for the daemon to die and its pid to be recycled onto a shell
with children. Verify it where it is used instead, and only when there is
still something to raise: the common case now skips the identity probe
altogether, which also takes a few seconds off the worst-case launch.
Two renderer call sites killed PTYs without handling rejection. That was
harmless while an unreachable session was answered by a silent no-op; now
that it honestly rejects, pane teardown and repo removal would log an
unhandled rejection every time — exactly when the daemon is already sick.
Deliberately not taken from that review: giving the endpoint-occupied catch
the same held fallback as the failed-health path. That path arrives with
occupancy unknown or empty, so holding there would swallow a real launch
failure to protect nothing.
Splits the repro script, which had grown past the line limit, into the
sequence it proves and the two things it proves it with: process-table
inspection, and the static assertions on the launcher's hold decision.
Co-authored-by: Orca <help@stably.ai >
2026-08-11 22:04:16 -07:00
..
2026-08-03 20:45:23 -07:00
2026-08-05 12:57:02 -07:00
2026-08-04 15:54:17 -07:00
2026-08-04 15:54:17 -07:00
2026-08-10 00:29:26 -07:00
2026-07-26 13:20:23 -07:00
2026-07-28 00:21:13 -07:00
2026-08-11 01:27:02 -07:00
2026-08-11 01:27:02 -07:00
2026-06-22 19:13:32 -07:00
2026-07-12 23:43:07 -07:00
2026-06-09 15:59:17 -07:00
2026-07-27 17:17:03 -07:00
2026-06-29 23:37:30 -07:00
2026-07-27 16:36:39 -07:00
2026-07-27 16:36:39 -07:00
2026-07-12 02:13:41 -07:00
2026-07-08 22:21:40 -07:00
2026-08-10 15:52:59 -07:00
2026-07-13 18:58:21 -07:00
2026-08-04 02:03:40 -07:00
2026-07-28 01:30:52 -07:00
2026-07-28 01:30:52 -07:00
2026-06-29 23:37:30 -07:00
2026-07-06 17:12:27 -07:00
2026-07-06 17:12:27 -07:00
2026-07-27 18:58:36 -07:00
2026-07-03 22:32:11 -07:00
2026-07-03 19:58:07 -07:00
2026-08-09 14:06:25 -07:00
2026-07-13 00:48:51 -07:00
2026-07-13 00:48:51 -07:00
2026-07-23 17:44:43 -07:00
2026-07-27 20:54:02 -07:00
2026-07-27 20:54:02 -07:00
2026-07-27 17:16:01 -07:00
2026-06-09 15:59:17 -07:00
2026-07-20 14:34:53 -07:00
2026-07-20 14:34:53 -07:00
2026-07-20 14:34:53 -07:00
2026-07-26 20:20:12 -07:00
2026-06-22 19:13:32 -07:00
2026-08-05 12:09:24 -07:00
2026-08-06 21:18:52 -07:00
2026-07-29 18:29:10 -07:00
2026-06-07 17:49:01 -07:00
2026-06-07 17:49:01 -07:00
2026-07-03 20:53:16 -07:00
2026-07-03 20:53:16 -07:00
2026-08-07 22:33:50 -07:00
2026-08-07 22:33:50 -07:00
2026-08-11 22:04:16 -07:00
2026-08-11 22:04:16 -07:00
2026-08-11 22:04:16 -07:00
2026-08-09 19:01:35 -07:00
2026-08-09 19:01:35 -07:00
2026-08-03 18:02:45 -07:00
2026-08-03 18:02:45 -07:00
2026-07-27 12:31:37 -07:00
2026-07-27 12:31:37 -07:00
2026-06-02 11:49:00 -07:00
2026-08-11 12:51:29 -07:00
2026-08-09 19:01:35 -07:00
2026-07-27 13:32:29 -07:00
2026-07-27 13:32:29 -07:00
2026-08-05 12:51:05 -07:00
2026-07-19 21:59:22 -04:00
2026-07-19 21:59:22 -04:00
2026-06-05 01:15:54 -07:00
2026-07-22 11:43:01 -07:00
2026-07-22 11:43:01 -07:00
2026-07-30 13:20:47 -07:00
2026-07-30 13:20:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-22 23:10:19 -07:00
2026-07-27 13:32:29 -07:00
2026-07-26 20:31:52 -07:00
2026-07-27 18:58:36 -07:00
2026-07-27 18:58:36 -07:00
2026-07-30 19:33:05 -07:00
2026-07-30 19:33:05 -07:00
2026-07-30 19:33:05 -07:00
2026-08-03 23:18:15 -07:00
2026-08-03 23:18:15 -07:00
2026-06-28 21:16:02 -07:00
2026-08-04 15:54:17 -07:00
2026-08-04 15:54:17 -07:00
2026-07-27 17:09:31 -07:00
2026-06-15 12:56:22 -07:00
2026-06-29 23:37:30 -07:00
2026-07-27 13:32:29 -07:00
2026-07-27 13:32:29 -07:00
2026-06-03 23:42:33 -07:00
2026-06-04 16:11:51 -04:00
2026-08-10 15:58:17 -07:00
2026-06-03 12:48:00 -07:00
2026-06-28 19:43:18 -07:00
2026-07-27 20:54:02 -07:00
2026-06-28 19:43:18 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 22:24:09 -07:00
2026-07-24 00:26:39 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-10 21:07:41 -07:00
2026-06-29 23:37:30 -07:00
2026-06-19 15:52:05 -07:00
2026-06-09 15:59:17 -07:00
2026-06-09 15:59:17 -07:00
2026-08-04 03:56:33 -07:00
2026-07-31 15:13:41 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-06-17 15:14:35 -07:00
2026-08-07 22:08:22 -07:00
2026-08-09 15:40:48 -07:00
2026-08-04 03:56:33 -07:00
2026-06-29 11:56:26 -07:00
2026-08-04 03:56:33 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-04 03:56:33 -07:00
2026-08-07 22:08:22 -07:00
2026-08-07 22:08:22 -07:00
2026-06-09 15:59:17 -07:00
2026-08-04 03:56:33 -07:00
2026-07-29 17:44:41 -07:00
2026-07-10 19:08:12 -07:00
2026-07-27 16:36:39 -07:00
2026-07-27 16:36:39 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-06-02 21:15:00 -07:00
2026-07-28 15:34:52 -07:00
2026-06-28 21:19:10 -07:00
2026-06-28 23:40:55 -07:00
2026-07-26 20:31:55 -07:00
2026-07-27 18:58:36 -07:00
2026-08-10 01:00:20 -07:00
2026-06-22 01:07:16 -07:00
2026-06-22 01:07:16 -07:00
2026-07-27 20:54:02 -07:00
2026-08-09 13:19:08 -07:00
2026-05-15 05:44:25 -04:00
2026-07-27 12:31:37 -07:00
2026-07-27 12:31:37 -07:00
2026-07-22 11:43:01 -07:00
2026-08-05 21:17:45 -07:00
2026-07-28 00:21:13 -07:00
2026-08-10 15:52:59 -07:00
2026-07-30 19:33:05 -07:00
2026-08-11 12:20:20 -07:00
2026-08-08 19:06:50 -07:00
2026-07-27 16:26:43 -07:00
2026-08-09 14:29:14 -07:00
2026-07-27 13:32:29 -07:00
2026-07-27 13:32:29 -07:00
2026-05-30 13:09:17 -07:00
2026-07-27 20:54:02 -07:00
2026-05-30 21:46:13 -07:00
2026-07-28 00:21:13 -07:00
2026-07-22 00:22:36 -07:00
2026-07-22 00:22:36 -07:00
2026-08-10 01:17:14 -07:00
2026-07-27 16:40:59 -07:00
2026-08-07 10:14:37 -07:00
2026-07-30 18:08:30 -07:00
2026-07-31 00:22:53 -07:00
2026-06-30 16:36:59 -07:00
2026-07-25 03:50:25 -07:00
2026-07-25 03:50:25 -07:00
2026-08-04 15:54:17 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-31 00:22:53 -07:00
2026-07-28 00:21:13 -07:00
2026-07-12 23:43:07 -07:00
2026-07-26 13:19:23 -07:00
2026-07-02 18:41:23 -04:00
2026-07-27 15:48:39 -07:00
2026-07-27 15:48:39 -07:00
2026-07-27 17:18:31 -07:00
2026-08-10 15:52:59 -07:00
2026-08-05 12:57:02 -07:00
2026-08-05 12:57:02 -07:00
2026-06-22 01:07:16 -07:00
2026-07-28 15:34:52 -07:00
2026-07-27 13:32:29 -07:00
2026-07-22 18:52:37 -07:00
2026-08-05 12:57:02 -07:00
2026-08-02 17:40:58 -07:00
2026-05-16 17:44:42 -04:00
2026-07-20 21:36:15 -07:00
2026-08-01 00:25:35 -07:00
2026-07-22 18:25:05 -07:00
2026-06-30 16:36:59 -07:00
2026-06-22 16:42:20 -07:00
2026-08-03 02:18:05 -07:00
2026-06-07 04:15:26 -07:00
2026-07-29 00:47:18 -07:00
2026-07-12 23:50:00 -07:00
2026-07-31 16:17:37 -07:00
2026-08-08 19:06:50 -07:00
2026-06-07 11:01:02 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-06-22 01:07:16 -07:00
2026-07-12 18:15:15 -07:00
2026-07-15 15:23:35 -07:00
2026-08-05 12:57:02 -07:00
2026-08-09 19:01:35 -07:00
2026-08-09 19:01:35 -07:00
2026-08-09 19:01:35 -07:00
2026-07-30 18:27:16 -07:00
2026-08-07 22:54:42 -07:00
2026-07-31 04:58:15 -07:00
2026-07-30 19:33:05 -07:00
2026-07-26 22:26:49 -07:00
2026-07-27 01:02:48 -07:00
2026-07-10 17:27:47 -07:00
2026-06-22 19:13:32 -07:00
2026-07-27 17:38:54 -07:00
2026-07-27 17:38:54 -07:00
2026-07-27 23:28:05 -07:00
2026-06-29 22:38:29 -07:00
2026-08-08 19:06:50 -07:00
2026-07-27 23:28:05 -07:00
2026-06-22 19:13:32 -07:00
2026-06-22 19:13:32 -07:00
2026-07-10 17:27:47 -07:00
2026-07-26 15:32:33 -07:00
2026-08-06 00:23:57 -07:00
2026-07-27 17:15:54 -07:00
2026-06-29 23:37:30 -07:00
2026-06-29 23:37:30 -07:00
2026-06-29 23:37:30 -07:00
2026-08-11 14:03:16 -07:00
2026-06-28 22:58:27 -07:00
2026-07-23 18:35:31 -07:00
2026-08-10 19:56:08 -07:00
2026-07-22 19:11:44 -07:00
2026-07-22 19:11:44 -07:00
2026-08-08 19:06:50 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-08-01 00:25:35 -07:00
2026-07-29 17:44:41 -07:00
2026-06-29 23:37:30 -07:00
2026-04-09 12:28:52 -07:00
2026-07-09 16:09:09 -07:00
2026-07-09 16:09:09 -07:00
2026-07-27 01:14:33 -07:00
2026-07-27 01:14:33 -07:00
2026-07-05 23:56:37 -07:00
2026-06-22 01:07:16 -07:00
2026-07-16 14:47:28 -07:00
2026-07-30 18:27:16 -07:00
2026-07-30 18:27:16 -07:00
2026-07-27 17:38:54 -07:00
2026-06-29 22:38:29 -07:00
2026-07-02 12:11:58 -07:00
2026-07-02 12:11:58 -07:00
2026-08-01 00:25:35 -07:00
2026-07-19 20:25:52 -07:00
2026-07-27 15:48:39 -07:00
2026-07-31 06:08:26 -07:00
2026-08-10 15:52:59 -07:00
2026-08-09 22:24:33 -07:00
2026-08-10 15:44:05 -07:00
2026-06-09 10:43:04 -07:00
2026-08-09 14:41:40 -07:00
2026-08-08 14:06:34 -07:00
2026-08-09 12:53:13 -07:00
2026-07-27 18:58:36 -07:00