-
Bug
-
Resolution: Done
-
Major
-
6.2.11.Final
-
None
When using RESTEasy’s SseBroadcaster, we’ve observed a critical issue that causes broadcast(...) to block indefinitely and skip downstream sinks if a registered SseEventSink returns a CompletionStage that is never completed.
This behavior occurs after session invalidation, due to how AsyncOutputStream and the surrounding container handle write failures.
Real-world Impact:
- Partial delivery of events (some clients receive events, others don’t).
- Silent buffering for a dead sink.
- Increasing memory usage.
- Ultimately: out of memory error of the application server, affecting the whole server cluster.
Environment:
- Application server: RedHat JBoss EAP 8.0.7
- Servlet container: Undertow
- Java version: Azul JDK 17.0.15