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
feat(cp): container-grade shutdown — SIGTERM handling and connection drain #1475
openab-cp currently handles only ctrl_c (SIGINT). Under docker stop/ECS/k8s, SIGTERM is sent first and escalates to SIGKILL after the grace period — the CP never runs its shutdown path. Additionally, shutdown aborts the sweeper first while WS tasks keep running, and in-flight delegations get no terminal result: connected runtimes see a TCP reset instead of a Close frame. (#1469 round-4 F12.)
Desired order: handle SIGTERM/SIGHUP via tokio::signal::unix; on shutdown, signal all connections (Close frame with reason), synthesize terminal results for in-flight delegations where possible, drain briefly, then stop the sweeper and exit.
Use Case
Every containerized deployment (ECS Fargate, k8s) stops tasks with SIGTERM. Without this, each deploy/scale-in looks like a crash to every connected runtime: abrupt socket resets, delegations resolved only by client-side deadline reconciliation instead of clean target_disconnected synthesis.
This issue has been open for more than 14 days with no linked pull request, so it is being closed as not planned.
If this is still needed, please open a new issue with updated context and reference this closed issue instead of reopening it. A linked PR is the strongest signal that the work matters.
Note on history: the earlier contributor PR for this issue (#1555) was closed by process automation (missing Discord discussion link / pending-contributor timeout), not on technical grounds. The work is pending a control-plane roadmap decision, so this issue stays open. Removing the stale auto-closed-stale label and needs-triage.
This issue has been open for more than 14 days with no linked pull request, so it is being closed as not planned.
If this is still needed, please open a new issue with updated context and reference this closed issue instead of reopening it. A linked PR is the strongest signal that the work matters.
Activity
github-actions commentedon Aug 28, 2026
This issue has been open for more than 14 days with no linked pull request, so it is being closed as not planned.
If this is still needed, please open a new issue with updated context and reference this closed issue instead of reopening it. A linked PR is the strongest signal that the work matters.
fix(cp): close-frame writes must not be interrupted by a second signal
test(cp): prove SIGTERM resolves in-flight work on a real process
fix(cp): a stalled peer must not be able to pin or truncate the drain
fix(cp): anchor the shutdown bound at the signal, not at startup
fix(cp): close the last signal gap and make the process tests diagnos…
fix(cp): one listener per signal — a single ctrl-c must not force-exit
docs(cp): state the listener slack where every shutdown doc is read
docs(cp): the field's own doc must state the listener slack too
docs(cp): drop the self-contradicting "and the process exit" clause
chaodu-agent commentedon Oct 28, 2026
Note on history: the earlier contributor PR for this issue (#1555) was closed by process automation (missing Discord discussion link / pending-contributor timeout), not on technical grounds. The work is pending a control-plane roadmap decision, so this issue stays open. Removing the stale
auto-closed-stalelabel andneeds-triage.github-actions commentedon Oct 29, 2026
This issue has been open for more than 14 days with no linked pull request, so it is being closed as not planned.
If this is still needed, please open a new issue with updated context and reference this closed issue instead of reopening it. A linked PR is the strongest signal that the work matters.