Skip to content
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

FluxReceive queue not cleaned in case of inbound error after all data read #1161

Closed
rstoyanchev opened this issue Jun 16, 2020 · 1 comment
Closed
Labels
status/invalid We don't feel this issue is valid

Comments

@rstoyanchev
Copy link
Contributor

Originally reported in spring-projects/spring-framework#25216.

In the sample provided there https://github.com/EtienneMiret/reactor-netty-oom the server closes connections at random points with socket.setSoLinger (true, 0). Meanwhile the client delays the start of reading with:

webClient.get ()
    .uri ("/{index}", i)
    .exchange ()
    .delayElement (Duration.ofMillis (200))
    .flatMapMany (response -> ...)

So in some cases FluxReceive#onInboundError is called before a subscription and when inboundDone is already true, which simply exits because it expects the cancellation or the completion to have done it.

@rstoyanchev rstoyanchev added type/bug A general bug status/need-triage A new issue that still need to be evaluated as a whole labels Jun 16, 2020
@violetagg violetagg removed the status/need-triage A new issue that still need to be evaluated as a whole label Jun 16, 2020
@violetagg violetagg added this to the 0.8.20.RELEASE milestone Jun 16, 2020
violetagg added a commit that referenced this issue Jun 16, 2020
There are two use cases for HttpClient:
- a channelInactive is received, the response was fully received but there is no subscriber
- a error is receive while receiving the response and there is no subscriber
violetagg added a commit that referenced this issue Jun 16, 2020
There are two use cases for HttpClient:
- a channelInactive is received, the response was fully received but there is no subscriber
- a error is receive while receiving the response and there is no subscriber
@violetagg violetagg removed this from the 0.8.20.RELEASE milestone Jun 19, 2020
@violetagg violetagg added status/invalid We don't feel this issue is valid and removed type/bug A general bug labels Jun 19, 2020
@violetagg
Copy link
Member

We cannot clean the queue with inbound data because we have use cases where the subscription is delayed. If we clean the queue such subscribers will not be able to consume the data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/invalid We don't feel this issue is valid
Projects
None yet
Development

No branches or pull requests

2 participants