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

bug(server): fix deadlock in BufferedStreamerBase notify all producers #760

Merged
merged 1 commit into from
Feb 6, 2023

Conversation

adiholden
Copy link
Collaborator

No description provided.

@adiholden adiholden requested a review from dranikpg February 5, 2023 13:21
@romange
Copy link
Collaborator

romange commented Feb 5, 2023

Can you provide some context, explanation as to how the deadlock happens?

@dranikpg
Copy link
Contributor

dranikpg commented Feb 5, 2023

The big difference is that we now have multiple producers: regular replication and expiration. I didn't take this into account when writing the code

So if both the expire and regular blocked due to backpressue, and only the expire is woken up, then the transaction keeps stuck forever until the next wakeup with luck, which can be never, in case no more items expire

@adiholden adiholden merged commit 69bca57 into main Feb 6, 2023
@romange romange deleted the fix_deadlock_in_stream_sync branch February 18, 2023 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants