v0.8.1: supervisor restart loses live worker active-session mapping during RLM fan-out #1870
Atroci
started this conversation in
Bug reports
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
Prime Agent 0.8.1 lost its daemon connection during an interactive RLM fan-out. The original supervisor disappeared, but its worker process and socket stayed alive. A replacement supervisor recovered that worker, then every client reconnect failed with
Unknown active session.This resembles #1221, but this incident did not follow a reboot. It happened while the machine and worker remained live.
Environment
Timeline in UTC
rlm_child_update,agent_end,message_start, andmessage_end.Unknown active sessionfor the original active-session ID.The surviving worker still owned its forkserver socket. The session transcript and completed child artifacts remained present.
Relevant log lines
Checks performed
No matching kernel OOM, systemd-oomd, earlyoom, coredump, reboot, package update, or recorded system signal was found at the incident time. This does not establish why the original supervisor exited. The fan-out is correlated with the failure, not proven as its cause.
prime-agent doctor --fix --jsonlater found the replacement default daemon healthy and reaped nothing.Expected
Per the daemon recovery design, a replacement supervisor that adopts a live worker should restore a usable binding for the existing active-session ID, or return a structured replacement ID that the client can rebind to.
Actual
Worker recovery completed, but the previous active-session ID was absent from the new supervisor. The client kept retrying the stale ID and could neither prompt nor attach to the recovered session.
Suggested fix and regression test
Unknown active session.rlm_child_updateandmessage_startoperations, start the replacement, then reconnect with the previous active-session ID.Workaround
I preserved the transcript, left the broken session behind, and moved the fan-out to a bounded outer orchestrator with three concurrent workers. I did not apply an unsupported package patch or a heap-size workaround because the surviving worker and absence of OOM evidence do not support a worker heap failure.
All reactions