Skip to content

Conversation

@OlegDokuka
Copy link
Member

closes #846

This PR fixes the case when a new stream might have already been started but the terminal error was not put into the list, so the termination will omit that "half initiated" one so it will hang forever since UnboundedProcessor does not error when calling onNext.

As a fix, the termination operation is scheduled on the serializedScheduler so there is no racing between new requests and termination. Also, all the streams that were scheduled but have not observed termination do this check again on the first request method so if there is termination, this stream will be terminated immediately

Signed-off-by: Oleh Dokuka [email protected]

@OlegDokuka OlegDokuka added the bug label May 21, 2020
@OlegDokuka OlegDokuka added this to the 1.0.1 milestone May 21, 2020
@OlegDokuka OlegDokuka requested a review from rstoyanchev May 21, 2020 21:44
@OlegDokuka OlegDokuka force-pushed the bugfix/rsocket-streams-termination branch 3 times, most recently from 98d6b03 to b84392b Compare May 22, 2020 07:53
@OlegDokuka OlegDokuka force-pushed the bugfix/rsocket-streams-termination branch from b84392b to d12d5dc Compare May 22, 2020 08:23
@OlegDokuka OlegDokuka merged commit bcee05b into master May 26, 2020
@OlegDokuka OlegDokuka deleted the bugfix/rsocket-streams-termination branch May 26, 2020 07:37
OlegDokuka added a commit that referenced this pull request Jun 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Deadlock on Connection with Errors

3 participants