You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d20995b
Browse filesBrowse the repository at this point in the historyBrowse files
fix(groups): end a stop the child ignores, and let the room see why it died (#1164)
Three defects the merge review of #1153 left as follow-ups, all in the external room driver.
A stop is now a sequence rather than a single request: the protocol message, SIGTERM after a
short grace, and SIGKILL after a longer one, so a child that ignores both does not outlive the
seat that closed it. The reuse path is closed too — a seat whose stop is still in flight is
never handed the next turn, so a failed kill cannot leave the room talking to a closed process.
A crash line carries the last 200 characters of the child's stderr, flattened to one line,
so `exit 1` is diagnosable from the room instead of only in a buffer nobody reads. The report
moved to the child's `close` event, which is the point where its last stderr lines have been
read. The timeout state reads as "timed out" rather than "process timeout".
The external room driver now ends a stop it is ignored: after `{ type: 'stop' }` and a `SIGTERM` grace it escalates to `SIGKILL`, and a seat whose stop is still in flight is never handed the next turn, so a child cannot outlive its membership. A crash line carries the last ~200 characters of the child's `stderr` (flattened and capped) instead of only `exit N`, and the room-turn timeout reads as "timed out" rather than "process timeout" (#1164).
// A state is a sentence the room reads, not a state name: `timeout` reads as `timed out` (#1164).
76
+
functionstateLine(member,state,detail){
77
+
if(state==='crashed')return`${member.name}'s external process crashed${detail ? ` (${detail})` : ''}. Its turns in this room have no answer until it starts again.`
0 commit comments