37ab629d708b529340bdfc670984bec4e46f6f19
ShutdownAsync iterated a single registry snapshot while Kestrel still accepted OpenSession calls (ApplicationStopping fires before hosted services stop), so a session opened behind the snapshot had nobody left to close it and its x86 worker outlived the gateway as an orphan. SessionManager now observes IHostApplicationLifetime.ApplicationStopping (and sets the same flag at the start of ShutdownAsync) and rejects OpenSessionAsync with the new SessionManagerErrorCode.GatewayStopping, re-checked after registration so the flag write before the drain's snapshot closes the race. GatewayStopping maps to gRPC Unavailable and is not a fault. ShutdownAsync re-snapshots until the registry is empty, bounded at three passes.
Description
No description provided
Languages
C#
48.4%
Java
40.1%
Python
3.2%
Rust
3%
Go
2.6%
Other
2.7%