Jinwoo-H
f0ae0837dd
fix(ssh): stop a failed relay --connect from orphaning the live relay (STA-1756)
...
When `--connect` to an existing detached relay failed, deploy removed the socket
and launched a fresh relay over the same path. On Unix, unlinking a socket path
does not close a listening socket the owner already holds: the old relay stayed
alive, kept its PTYs and every shell/agent inside them, and became permanently
unreachable. With the shipped `--grace-time 0` a relay holding a PTY arms no
grace timer, so nothing ever reaped it.
The relay already refuses this displacement itself — a fresh daemon that hits
EADDRINUSE probe-connects the path and declines to steal it from a live owner.
The unconditional `rm -f` destroyed exactly that evidence.
Remove the socket only on positive proof that nothing is listening (a connect
probe answered ECONNREFUSED/ENOENT). A live or unverifiable owner leaves the
socket alone and fails the deploy with an actionable error, per the rule in
docs/reference/ssh-execution-boundary.md that loss of contact is never evidence
of process death. Stale sockets from a crashed relay still get cleaned up.
Covered at three levels: the owner probe and its verdicts, the deploy wiring
(no rm -f and no fresh launch unless the owner is proven gone), and a live
oracle that runs real relay daemons holding a real PTY — including a control
case that reproduces the orphan when the socket is unlinked first.
2026-08-18 02:19:13 -04:00
..
2026-08-17 16:38:59 -07:00
2026-08-15 18:33:33 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-11 12:13:16 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-17 12:44:39 -07:00
2026-08-16 21:58:28 -07:00
2026-08-16 13:45:54 -07:00
2026-08-15 18:33:33 -07:00
2026-08-15 00:54:20 -07:00
2026-08-17 15:12:12 -07:00
2026-08-17 02:19:57 -07:00
2026-08-03 23:25:14 -07:00
2026-08-15 18:33:33 -07:00
2026-08-16 20:48:26 -07:00
2026-08-15 00:41:45 -07:00
2026-08-15 18:25:37 -07:00
2026-08-17 22:34:04 -07:00
2026-08-16 20:48:26 -07:00
2026-08-17 20:43:29 -07:00
2026-08-14 12:50:35 -07:00
2026-07-23 18:35:31 -07:00
2026-08-16 20:48:26 -07:00
2026-08-12 13:02:23 -07:00
2026-08-16 20:48:26 -07:00
2026-08-17 15:38:42 -07:00
2026-08-17 00:12:14 -07:00
2026-08-13 22:48:24 -07:00
2026-08-17 21:18:44 -07:00
2026-08-15 18:17:20 -07:00
2026-08-16 20:48:26 -07:00
2026-07-10 00:11:27 -07:00
2026-07-30 19:33:05 -07:00
2026-08-15 18:25:37 -07:00
2026-07-29 17:44:41 -07:00
2026-08-17 20:43:06 -07:00
2026-08-15 18:17:20 -07:00
2026-08-11 18:19:43 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-08-15 18:17:20 -07:00
2026-07-27 16:36:39 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-16 12:33:28 -07:00
2026-08-11 18:19:43 -07:00
2026-08-13 22:09:23 -07:00
2026-08-11 18:19:43 -07:00
2026-08-11 18:19:43 -07:00
2026-08-17 15:32:17 -07:00
2026-08-15 18:33:33 -07:00
2026-08-17 12:23:50 -07:00
2026-08-17 15:57:07 -07:00
2026-08-11 22:34:54 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 20:44:16 -07:00
2026-08-13 22:48:24 -07:00
2026-08-17 20:43:29 -07:00
2026-08-17 16:38:59 -07:00
2026-08-17 02:19:57 -07:00
2026-08-17 20:43:06 -07:00
2026-07-21 18:23:20 -07:00
2026-08-17 00:55:04 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-11 01:48:14 -07:00
2026-08-18 02:19:13 -04:00
2026-08-15 00:54:20 -07:00
2026-08-17 22:34:04 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-17 02:19:57 -07:00
2026-07-24 19:54:25 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-17 18:26:52 -07:00
2026-07-20 01:14:17 -07:00
2026-08-01 19:22:39 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-01 19:22:39 -07:00
2026-08-01 19:22:39 -07:00
2026-08-09 22:52:11 -07:00
2026-08-09 22:52:11 -07:00
2026-07-23 06:22:56 -07:00
2026-07-23 06:22:56 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-06-22 18:01:37 -07:00
2026-06-22 18:01:37 -07:00
2026-07-17 15:27:39 -07:00
2026-07-17 15:27:39 -07:00
2026-07-24 19:54:25 -07:00
2026-07-24 19:54:25 -07:00
2026-08-16 12:48:53 -07:00
2026-07-29 21:43:45 -07:00
2026-07-29 21:43:45 -07:00
2026-07-26 00:13:48 -07:00
2026-07-26 00:13:48 -07:00
2026-08-01 19:22:39 -07:00
2026-08-01 13:38:45 -07:00
2026-08-15 18:25:37 -07:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 22:48:24 -07:00
2026-06-30 11:31:55 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:22 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:21 -07:00
2026-08-13 16:23:21 -07:00
2026-06-30 11:31:55 -07:00
2026-08-01 13:38:45 -07:00
2026-08-01 13:38:45 -07:00
2026-08-16 23:51:53 -07:00
2026-08-17 20:43:29 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 17:40:58 -07:00
2026-08-02 17:40:58 -07:00
2026-08-16 13:51:04 -07:00
2026-06-19 17:14:55 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-07-29 18:21:26 -07:00
2026-08-17 22:34:04 -07:00
2026-08-11 17:29:22 -07:00
2026-08-15 18:25:37 -07:00
2026-08-01 13:38:45 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-07-18 23:01:29 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-07-29 18:21:26 -07:00
2026-07-10 17:52:50 -07:00
2026-07-15 15:23:35 -07:00
2026-08-13 22:48:24 -07:00
2026-07-06 16:43:05 -07:00
2026-07-06 16:43:05 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-07-28 15:34:52 -07:00
2026-07-28 15:34:52 -07:00
2026-08-03 23:11:36 -07:00
2026-08-17 15:25:25 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-17 15:25:25 -07:00
2026-08-17 15:25:25 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-17 15:57:07 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-17 15:25:25 -07:00
2026-08-17 15:57:07 -07:00
2026-08-15 00:54:20 -07:00
2026-08-06 21:19:04 -07:00
2026-08-06 21:19:04 -07:00
2026-08-06 21:19:04 -07:00
2026-08-15 00:54:20 -07:00
2026-08-17 15:25:25 -07:00
2026-07-27 01:14:33 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-16 13:45:54 -07:00
2026-08-06 21:19:04 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-17 15:25:25 -07:00
2026-08-17 12:23:50 -07:00
2026-08-15 21:41:01 -07:00
2026-08-15 21:41:01 -07:00
2026-07-31 11:58:46 -07:00
2026-08-13 17:02:28 -07:00
2026-08-13 17:02:28 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-06 21:19:04 -07:00
2026-08-06 21:19:04 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-07-25 22:28:07 -07:00
2026-07-25 22:28:07 -07:00
2026-08-07 21:59:24 -07:00
2026-08-07 21:59:24 -07:00
2026-08-01 19:22:39 -07:00
2026-07-23 18:03:43 -07:00
2026-07-23 18:03:43 -07:00
2026-08-01 19:22:39 -07:00
2026-08-04 01:37:25 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-17 20:43:06 -07:00
2026-08-17 20:43:06 -07:00
2026-08-17 20:43:06 -07:00
2026-08-17 20:43:06 -07:00
2026-08-17 15:25:25 -07:00
2026-08-17 15:25:25 -07:00
2026-08-16 22:05:46 -07:00
2026-08-16 22:05:46 -07:00
2026-08-16 22:05:46 -07:00
2026-08-16 22:05:46 -07:00
2026-06-29 22:38:29 -07:00
2026-07-09 16:24:20 -07:00
2026-08-13 22:48:24 -07:00
2026-07-20 14:34:53 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 20:55:29 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 20:55:29 -07:00
2026-08-12 20:55:29 -07:00
2026-08-16 23:51:53 -07:00
2026-08-13 23:47:20 -07:00
2026-07-10 17:27:47 -07:00
2026-08-13 22:48:24 -07:00
2026-08-09 13:31:22 -07:00
2026-08-09 13:31:22 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-07-29 18:21:26 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-17 20:43:29 -07:00
2026-08-17 20:43:29 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-11 21:03:04 -07:00
2026-07-11 21:03:04 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-17 15:27:39 -07:00
2026-07-17 15:27:39 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-08-09 19:01:35 -07:00
2026-07-31 14:29:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-07-28 19:58:58 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-07-22 18:52:37 -07:00
2026-08-04 02:02:53 -07:00
2026-08-17 22:47:58 -07:00
2026-07-09 23:00:01 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-07-29 18:21:26 -07:00
2026-08-15 00:38:13 -07:00
2026-08-15 00:38:13 -07:00
2026-07-11 02:03:14 -07:00
2026-08-01 13:38:45 -07:00
2026-08-01 13:38:45 -07:00
2026-08-10 19:55:29 -07:00
2026-07-24 00:27:40 -07:00
2026-07-24 00:27:40 -07:00
2026-07-25 22:28:07 -07:00
2026-07-25 22:28:07 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 22:48:24 -07:00
2026-07-04 21:31:51 -07:00
2026-07-04 21:31:51 -07:00
2026-08-14 22:18:36 -07:00
2026-08-14 22:18:36 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-17 15:57:07 -07:00
2026-08-17 01:23:08 -07:00
2026-08-17 12:23:50 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-17 15:57:07 -07:00
2026-08-17 15:57:07 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-17 12:23:50 -07:00
2026-08-17 12:23:50 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 18:25:37 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 21:59:24 -07:00
2026-07-19 17:31:34 -07:00
2026-08-07 20:35:22 -07:00
2026-07-30 17:49:32 -07:00
2026-07-30 17:49:32 -07:00
2026-07-30 17:49:32 -07:00
2026-07-14 15:23:06 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 20:35:22 -07:00
2026-08-09 19:52:16 -07:00
2026-08-17 22:39:02 -07:00
2026-08-16 23:51:53 -07:00