fix: address Copilot review round 2 (#2339)
- The holder-record removal is best-effort and can no longer throw past release(); ERELEASED on release is the library having already dropped a taken-over lock, so it is ignored rather than described as a lock that "goes stale on its own". - The signal test's stand-in now spawns a descendant of its own, so the whole-process-group guarantee is what the test asserts: a regression to child.kill() or a non-detached spawn leaves the descendant alive and fails. - The three docs no longer claim a dead holder is always recovered in 30s: a stale lock directory that cannot be removed runs the wait to its 45-minute cap and names the path. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PsmUAZ6aLUAFqenjJKSSRp Signed-off-by: cliffhall <cliff@futurescale.com>
This commit is contained in:
parent
60bbe7675f
commit
2c8dbd3cd0
1 changed files with 35 additions and 12 deletions
|
|
@ -173,8 +173,12 @@ releases (it re-checks every 2s and prints `still waiting` once a minute). The
|
|||
holder's pid and worktree are in the line, so you can decide whether to wait
|
||||
or to stop that gate. A holder that was **killed** — a closed terminal, an
|
||||
OOM'd session — stops refreshing its lock and is taken over after 30s; nothing
|
||||
needs cleaning up by hand. The wait gives up after 45 minutes, naming the
|
||||
holder, which only ever happens against a live gate that has hung.
|
||||
needs cleaning up by hand. The one exception is a dead holder's lock directory
|
||||
that cannot be removed (a stray file inside it, or permissions): the takeover
|
||||
fails, the waiter keeps waiting, and the wait runs to its 45-minute cap naming
|
||||
the path — remove that directory by hand. So the give-up happens against a
|
||||
live gate that has hung, or a stale lock that would not go away; never on its
|
||||
own.
|
||||
|
||||
`INSPECTOR_SKIP_GATE_LEASE=1 npm run local:gate` runs without the lease. It is
|
||||
for a measurement that needs contention; it does not get a result sooner,
|
||||
|
|
|
|||
Loading…
Reference in a new issue