-
Notifications
You must be signed in to change notification settings - Fork 351
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
take() ignored when resuming after Exceptions$ErrorCallbackNotImplemented #858
Comments
Connection close is related to #857. A memory leak may be related to the fact that resume implementation right now is unstable |
Let me fix #857 first and then we can double-check whether cancel works in that scenario |
Thanks, @OlegDokuka. In the meantime, I will workaround by registering error handlers everywhere (a good idea anyway). |
I will ping you shortly to check whether a fix for #857 causes a different issue with that one. (You would need to check it with a specific artifact from a PR build) |
@yamass is this issue can be reproduced when the |
@OlegDokuka and are discussing this. Here are some findings. The subscribe without an error callback results in a Reactor This is okay when resume is not enabled since the connection closing propagates to When resume is enabled, the connection closing is expected and We are going to look to Reactor to address the root cause of this, e.g. via reactor/reactor-core#2176 and possibly more broadly via reactor/reactor-core#1431 but in the mean time we may need to protect against this and stop the bubbling of the errors in We may also need similar protections on the responder side as well. |
@OlegDokuka As @rstoyanchev already described, this does not happen when subscribing with an error handler. This is a practicable workaround in short term. @rstoyanchev Is there any way I can make the connection not be closed on these kinds of errors? In my application, all requests are completely independent of each other, so if one of them fails with a bubbling Exception and causes the connection to close, this is not an optimal behavior for us. Are there configuration options for this? |
@yamass There is no such configurations. We will provide a short time workaround as of now. As the further steps, it will be fixed in reactor |
I am using the resume() functionality. I have experienced a very strange behavior that I consider one or multiple bugs. It might also be related to #857, since it also logs the message mentioned there.
When calling requestStream() and subscribing to the returned flux without an error handler, the connection gets closed with the following error log:
When reusing the client connection for another request, the server does receive the request and starts processing it (seen from the logs). However, it does not react on cancel signals from the client, nor does the client receive any results (
next
signals).See the code below.
Expected Behavior
After reconnect,
cancel
andnext
signals should still be honored.Actual Behavior
They are not. See test code.
Steps to Reproduce
Possible Solution
Your Environment
netty
, ...): default rsocket dependenciesjavar -version
) or Node version (node --version
)):openjdk 14.0.1 2020-04-14
OpenJDK Runtime Environment AdoptOpenJDK (build 14.0.1+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 14.0.1+7, mixed mode, sharing)
uname -a
): MacOSThe text was updated successfully, but these errors were encountered: