fix(managed): harden liveness and control bounds #53

Merged
Lochnair merged 4 commits from fix/managed-liveness-control into main 2026-08-09 17:38:45 +00:00
Lochnair commented 2026-08-09 17:33:42 +00:00 (Migrated from github.com)

This PR tightens the post-rewrite managed runtime around bounded cooperative work and control-path linearization.

It bounds AsyncClient::poll_open() so sustained ignored opening traffic cannot monopolize a ManagedClientTask poll, while preserving absolute opening deadlines, retained transaction state, cancellation safety, and public AsyncClient::open() behavior. It also hardens managed stop/update handling with monotonic Open → Stopping → Closed admission, structured resolution of accepted commands during stop/failure/seal, and correct explicit-stop observation even when quiescence has already moved the task into Stopping.

The PR also validates managed channel capacities before constructing Tokio channels, rejects structurally impossible oversized desired sets before enqueue, and adds deterministic regressions covering noisy opening fairness plus the key update/stop/seal race orderings. No timeout-map redesign, frontend changes, protocol changes, or dependency changes are included.

This PR tightens the post-rewrite managed runtime around bounded cooperative work and control-path linearization. It bounds AsyncClient::poll_open() so sustained ignored opening traffic cannot monopolize a ManagedClientTask poll, while preserving absolute opening deadlines, retained transaction state, cancellation safety, and public AsyncClient::open() behavior. It also hardens managed stop/update handling with monotonic Open → Stopping → Closed admission, structured resolution of accepted commands during stop/failure/seal, and correct explicit-stop observation even when quiescence has already moved the task into Stopping. The PR also validates managed channel capacities before constructing Tokio channels, rejects structurally impossible oversized desired sets before enqueue, and adds deterministic regressions covering noisy opening fairness plus the key update/stop/seal race orderings. No timeout-map redesign, frontend changes, protocol changes, or dependency changes are included.
Sign in to join this conversation.