-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SSE Defects #23997
Comments
for building the client in the reactive version, is there any reason for not using |
In my case no. I simply point out the issue that occurs for anyone who does need to access the methods that are only available on the builder. |
|
Another issue with the SSE Client Reactive is that it does not propagate the entity in the WebApplicationException. I think this is a known issue as there are comments in the code to that effect. This is a more serious issue as I was hoping to switch to the reactive client as it properly implements |
/cc @FroMage, @geoand, @stuartwdouglas |
Hi, any update on this issue ? SSE Server Reactive |
@geoand do you have this one on your radar? |
Nope, it had dropped off, but I guess it's back on |
FYI, I switched to Mutiny SSE as SSE Client Reactive started rapidly leaking memory (from 2.9.x?) - appears Buffers not being closed. |
Do you have a memory dump or a sample project that exhibits this behavior? |
See this branch of the reproducer: https://github.com/jimbogithub/sse/tree/mem-leak Start the sse-server-reactive then the sse-client-reactive. 2.7.x was OK. Noticed it from 2.9.2. Still present in 2.11.3. Not so much leaking byte arrays but they grow in size (increasing
Eventually become "humungous" and GC fails. |
Thanks |
@jimbogithub I was not able to reproduce the issue with your project. |
@geoand Did you use the branch I indicated? |
Oh, it's the client that has the leak? I was monitoring the server. Let me check the client as well |
I can confirm the client issue. |
Relates to: quarkusio#23997
#27594 seems to fix the issue but I am not yet 100% it's the proper fix |
@geoand I've re-tested my assertion that it was related to the Jackson/JSON integration - it isn't. Reproducer works with server sending PLAIN_TEXT and client doing simple |
Right, I saw that too when testing my fix |
Relates to: quarkusio#23997 (cherry picked from commit 5d485f0)
Relates to: quarkusio#23997
Relates to: quarkusio#23997
Relates to: quarkusio#23997
Relates to: quarkusio#23997
Relates to: quarkusio#23997
Is this still a problem? |
Closing as we did not receive feedback |
Describe the bug
Multiple issues related to Server Sent Events demonstrated in https://github.com/jimbogithub/sse. It contains reactive and non-reactive versions of a simple
TimeBroadcaster
broadcasting a timestamp event once per second to each subscribedTimeConsumer
.SSE Server
See
sse-server
TimeBroadcaster
.@ApplicationScoped
or@Singleton
)Sse
instance from which to derive theSseBroadcaster
andBuilder
. Hence it appears impossible to properly implement the one-sender-many-receivers pattern.SseBroadcaster.onError
is called twice for a client that has been cleanly closed. This is undesirable.SSE Client
See
sse-client
TimeConsumer
.Dummy
interface in order for the client to bootstrap. See comments on that class as to what happens if you don't have this.SSE Server Reactive
See
sse-server-reactive
TimeBroadcaster
. Unlike the non-reactive server, it is possible to obtain a singularSse
instance from which to derive theSseBroadcaster
andBuilder
.SseBroadcaster.broadcast
tries to send messages to clients that have already closed.SseBroadcaster.onClose
is never called.SSE Client Reactive
See
sse-client-reactive
TimeConsumer
.ClientBuilder.newBuilder()...build()
does not work unless you add.withConfig(new org.jboss.resteasy.reactive.common.jaxrs.ConfigurationImpl(RuntimeType.CLIENT))
. This wasn't necessary for the non-reactive client or when doingClientBuilder.newClient()
and I suspect is not intended.ClientRequestContext.getHeaders().toString()
is not useful and does not match the non-reactive. See further discussion in code.ClientResponseContext.getStatusInfo().toString()
is not useful and does not match the non-reactive. See further discussion in code.Accept: text/event-stream
header.Expected behavior
No response
Actual behavior
No response
How to Reproduce?
https://github.com/jimbogithub/sse
Output of
uname -a
orver
No response
Output of
java -version
No response
GraalVM version (if different from Java)
No response
Quarkus version or git rev
2.7.2
Build tool (ie. output of
mvnw --version
orgradlew --version
)No response
Additional information
Initial discussion: https://groups.google.com/g/quarkus-dev/c/qbH9RYnrIPg/m/GUlEiwLABAAJ
The text was updated successfully, but these errors were encountered: