1a63fdd7dbdd1cb7552bc84e06ad48ad4b889fcc
AttachInternalEventSubscriber ran EnsureDistributorCreated / Register / StartPumpIfRequested with no state check, unlike AttachEventSubscriber. A premature attach would start the pump against a not-yet-Ready worker; the pump source throws SessionNotReady, PumpAsync completes every subscriber with that error and latches the distributor, and _eventDistributorStarted is never reset — so the session would reach Ready with permanently dead event streaming. Mirror AttachEventSubscriber's gate: check _state/_workerClient.State under _syncRoot and throw SessionManagerException(SessionNotReady) before the distributor is created, keeping the distributor calls outside the lock. Refs: archreview/2026-07-12/remediation/10-gateway-core.md GWC-27
Description
No description provided
Languages
Java
43.9%
C#
43.6%
Python
3.4%
Rust
3.4%
Go
2.9%
Other
2.7%