Casey
beb212dcc5
desktop: fix two managed-SSH-spawn bugs that break every fresh remote backend
...
1. Quoting: the spawn payload wrapped expandRemotePath() output -- already
a shell-quoted fragment like "$HOME"'/...' -- in shq() again, so the
reservation/lock/owner_file variables hold the quote characters
literally and every mkdir "$reservation" fails forever (~5 min per
attempt spinning in the reservation loop while holding the box-global
update mutex; queued spawns starve behind it). The same double quoting
sits in the stale-reaper identity guards, making every reap REFUSE.
The lockfile-reuse path masks the bug for existing backends, so it
only bites on fresh spawns.
2. Bashism: lockfile publication used ${var//__PID__/$child} -- bash-only
substitution in a payload run under plain sh (dash on Ubuntu), which
aborts the script AFTER the serve was spawned. The client then saw an
unknown failure, ran its error cleanup (deleting the token file), and
the just-booted serve died on the missing token -- orphaning one serve
per attempt. Replaced with a POSIX sed substitution.
Adds two regression tests: payload variables must keep $HOME expandable
(no re-quoting), and the pid substitution must be POSIX sh. Both fail
against the previous code; all 89 remote-lifecycle tests pass with the
fix.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-27 02:48:21 -07:00
..
2026-08-15 02:20:23 -07:00
2026-07-26 16:12:14 -05:00
2026-07-26 16:12:14 -05:00
2026-08-24 05:05:16 +00:00
2026-08-24 05:11:39 +00:00
2026-08-26 18:44:46 +00:00
2026-08-26 18:44:46 +00:00
2026-08-10 17:02:56 -07:00
2026-08-24 09:55:25 -07:00
2026-08-24 09:55:25 -07:00
2026-08-27 11:26:57 +05:30
2026-08-27 11:26:57 +05:30
2026-08-16 10:59:19 -07:00
2026-08-16 10:59:19 -07:00
2026-08-26 21:38:00 -07:00
2026-08-26 04:49:56 -07:00
2026-08-02 03:33:09 +00:00
2026-08-01 20:09:35 -04:00
2026-08-23 19:26:42 -05:00
2026-08-23 19:26:42 -05:00
2026-08-20 12:56:20 +00:00
2026-08-20 03:59:54 -07:00
2026-07-29 13:59:11 +05:30
2026-07-29 16:52:53 +05:30
2026-08-23 18:38:31 +00:00
2026-08-27 11:26:57 +05:30
2026-08-27 11:26:57 +05:30
2026-08-26 06:51:21 +00:00
2026-08-26 06:51:21 +00:00
2026-08-26 06:51:21 +00:00
2026-08-23 19:26:42 -05:00
2026-08-20 02:07:10 -07:00
2026-08-13 03:33:45 +00:00
2026-07-14 10:24:15 -04:00
2026-07-31 22:33:53 -07:00
2026-08-01 20:45:40 +00:00
2026-07-19 23:42:14 +00:00
2026-07-19 23:42:14 +00:00
2026-08-25 23:31:59 +00:00
2026-08-25 18:23:43 -05:00
2026-08-17 21:15:38 +00:00
2026-08-17 14:05:09 -07:00
2026-08-26 00:40:35 -07:00
2026-08-26 00:40:35 -07:00
2026-08-23 20:26:46 -05:00
2026-08-23 20:26:46 -05:00
2026-08-25 12:07:00 -05:00
2026-08-25 12:07:00 -05:00
2026-08-26 08:40:07 -07:00
2026-08-26 21:44:19 +00:00
2026-08-23 05:06:17 +00:00
2026-07-27 13:41:59 -05:00
2026-07-27 13:41:59 -05:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-16 19:57:39 +00:00
2026-07-20 23:01:49 +02:00
2026-07-20 23:01:49 +02:00
2026-08-15 01:04:19 -07:00
2026-08-15 01:04:19 -07:00
2026-08-18 21:51:44 +00:00
2026-08-18 21:51:44 +00:00
2026-08-26 08:40:07 -07:00
2026-08-26 08:40:07 -07:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-27 23:52:33 -05:00
2026-07-27 23:52:33 -05:00
2026-07-08 16:24:16 -07:00
2026-07-28 13:40:44 -05:00
2026-08-25 23:33:46 -07:00
2026-07-20 18:33:14 -05:00
2026-07-20 18:36:05 -05:00
2026-08-14 21:44:50 +00:00
2026-08-14 16:27:01 -05:00
2026-08-20 14:07:53 -05:00
2026-08-20 14:07:53 -05:00
2026-07-23 17:59:58 -07:00
2026-07-23 17:59:58 -07:00
2026-08-15 02:20:23 -07:00
2026-08-15 09:33:47 +00:00
2026-08-15 09:33:47 +00:00
2026-07-24 12:55:06 -05:00
2026-07-24 12:55:06 -05:00
2026-07-24 12:55:06 -05:00
2026-08-21 15:24:03 -07:00
2026-07-13 17:22:17 -04:00
2026-07-12 05:32:54 -04:00
2026-08-24 05:05:16 +00:00
2026-08-23 21:59:22 -07:00
2026-08-23 21:59:22 -07:00
2026-08-17 04:19:24 +00:00
2026-08-16 19:58:49 -07:00
2026-08-14 16:51:00 -05:00
2026-08-19 10:50:52 -05:00
2026-08-26 11:57:06 +00:00
2026-08-26 11:57:06 +00:00
2026-08-03 00:08:30 +05:30
2026-08-12 22:48:00 -05:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-08-15 00:33:11 -07:00
2026-08-15 00:33:11 -07:00
2026-08-15 11:39:10 +00:00
2026-08-15 11:39:10 +00:00
2026-08-12 01:41:34 +00:00
2026-08-11 17:03:00 -05:00
2026-08-26 04:49:22 -07:00
2026-08-23 21:12:26 -07:00
2026-08-08 22:15:24 -05:00
2026-08-08 22:15:24 -05:00
2026-08-23 22:34:38 -05:00
2026-08-23 22:34:38 -05:00
2026-08-24 06:48:10 -05:00
2026-08-24 06:48:10 -05:00
2026-08-24 17:03:13 +00:00
2026-08-24 17:03:13 +00:00
2026-08-24 14:11:49 -05:00
2026-08-24 14:11:49 -05:00
2026-08-24 14:11:49 -05:00
2026-08-10 05:21:05 -05:00
2026-08-10 10:44:00 +00:00
2026-08-10 05:21:05 -05:00
2026-08-10 10:44:00 +00:00
2026-08-09 09:10:59 +00:00
2026-08-09 09:10:59 +00:00
2026-08-24 19:18:19 +00:00
2026-08-24 19:18:19 +00:00
2026-08-09 09:51:41 +00:00
2026-08-24 11:57:38 -05:00
2026-07-13 17:22:17 -04:00
2026-07-31 00:38:11 -05:00
2026-07-16 19:57:39 +00:00
2026-07-16 15:33:38 -04:00
2026-08-27 11:26:57 +05:30
2026-08-27 01:31:15 +00:00
2026-08-27 01:31:15 +00:00
2026-08-23 21:59:22 -07:00
2026-08-23 21:59:22 -07:00
2026-08-26 07:45:59 +00:00
2026-08-26 07:45:59 +00:00
2026-07-22 16:30:14 +00:00
2026-07-22 16:30:14 +00:00
2026-08-26 00:40:35 -07:00
2026-08-26 00:40:35 -07:00
2026-07-31 10:16:21 -04:00
2026-07-31 10:16:21 -04:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-08-26 21:44:19 +00:00
2026-08-26 21:44:19 +00:00
2026-08-20 04:47:38 -07:00
2026-08-20 04:47:38 -07:00
2026-08-19 10:50:52 -05:00
2026-08-26 07:45:59 +00:00
2026-08-26 00:22:27 -07:00
2026-08-26 21:38:20 -07:00
2026-08-16 03:17:39 -07:00
2026-08-17 16:26:02 -07:00
2026-08-17 16:26:02 -07:00
2026-08-16 16:26:50 -07:00
2026-08-16 16:26:50 -07:00
2026-08-26 11:57:06 +00:00
2026-07-20 11:50:22 -05:00
2026-07-20 11:50:22 -05:00
2026-08-26 17:42:44 -07:00
2026-08-18 08:52:36 -05:00
2026-08-18 08:52:36 -05:00
2026-08-18 08:52:36 -05:00
2026-08-26 00:40:35 -07:00
2026-08-26 00:40:35 -07:00
2026-07-24 12:55:06 -05:00
2026-08-23 08:45:37 +00:00
2026-08-20 10:26:19 -04:00
2026-08-17 16:15:22 -07:00
2026-08-17 16:15:22 -07:00
2026-08-25 22:51:31 -07:00
2026-08-25 22:51:31 -07:00
2026-07-26 17:48:19 -07:00
2026-07-31 18:54:27 +00:00
2026-07-27 15:47:57 -05:00
2026-07-27 15:47:57 -05:00
2026-08-27 02:48:21 -07:00
2026-08-27 02:48:21 -07:00
2026-08-26 00:21:49 -07:00
2026-08-26 04:49:56 -07:00
2026-08-26 00:40:35 -07:00
2026-08-26 00:40:35 -07:00
2026-08-24 03:22:38 -07:00
2026-08-24 17:03:13 +00:00
2026-08-26 23:21:02 +00:00
2026-08-26 23:21:02 +00:00
2026-08-11 00:20:02 +00:00
2026-08-11 00:20:02 +00:00
2026-08-25 14:10:19 -07:00
2026-08-25 14:10:19 -07:00
2026-08-20 01:04:42 -05:00
2026-08-20 01:04:42 -05:00
2026-08-16 22:05:51 -07:00
2026-08-16 22:05:51 -07:00
2026-07-25 15:19:29 -04:00
2026-07-25 15:19:29 -04:00
2026-08-26 00:40:35 -07:00
2026-08-26 17:42:44 -07:00
2026-07-20 23:01:49 +02:00
2026-07-20 23:01:49 +02:00
2026-08-17 10:09:48 +00:00
2026-08-19 10:50:52 -05:00
2026-07-31 00:38:11 -05:00
2026-07-31 00:38:11 -05:00
2026-08-26 06:20:59 +00:00
2026-08-26 06:20:59 +00:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-08-21 05:57:14 +00:00
2026-08-21 05:57:14 +00:00
2026-08-14 21:44:50 +00:00
2026-08-14 13:09:44 -07:00
2026-07-28 23:53:25 -07:00
2026-07-28 23:53:25 -07:00
2026-08-20 18:15:16 +00:00
2026-08-20 12:52:21 -05:00
2026-08-20 18:15:16 +00:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-08-14 21:59:29 -07:00
2026-08-15 06:22:02 +00:00
2026-08-16 09:32:26 +00:00
2026-08-16 09:32:26 +00:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-08-10 19:00:19 -07:00
2026-08-10 19:00:19 -07:00
2026-08-01 14:30:11 -07:00
2026-08-24 20:15:03 -05:00
2026-08-24 20:15:03 -05:00
2026-08-26 06:20:59 +00:00
2026-08-26 06:20:59 +00:00
2026-08-26 23:21:02 +00:00
2026-08-26 15:51:22 -07:00
2026-08-08 16:51:44 -05:00
2026-08-08 16:51:44 -05:00
2026-08-08 22:13:08 -05:00
2026-08-08 22:17:38 -05:00
2026-08-10 17:02:56 -07:00
2026-07-13 17:22:17 -04:00
2026-08-19 16:56:58 +00:00
2026-08-17 21:43:52 -06:00
2026-08-27 01:31:15 +00:00
2026-08-27 01:31:15 +00:00
2026-07-20 23:01:49 +02:00
2026-07-18 02:26:19 -07:00
2026-07-18 02:26:19 -07:00
2026-07-17 18:55:34 -04:00
2026-07-18 04:56:56 +00:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-08-21 00:49:41 -07:00
2026-08-21 00:49:41 -07:00
2026-08-21 00:49:41 -07:00
2026-08-21 00:49:41 -07:00
2026-08-24 22:01:47 -05:00
2026-08-24 22:01:47 -05:00