-
Couldn't load subscription status.
- Fork 1.4k
Fix slow slink guarantees #8880
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
Conversation
|
@kpritam I am not authorised person to review but I have also made some trial&errors with tapsink to check it's behaviour. Changing from Using
|
cc/ @eyalfa This the behaviour what I expect of Scope and Daemon does |
|
varshith257 Bunch of things to unfold here, for the record I understand the difference between This is my understanding based on my limited knowledge of the codebase 😉 :
|
I was about to submit this exact same comment myself |
|
@kpritam I tend to categorize this as a bug as well, can't really see how changing to fork daemon guarantees anything, I suspect it just changes the probabilities. the way I see it the issue is that the finalization code is not waiting for the fiber running the sink, so the trick is first to make sure it can complete (by offering the final end marker into the queue) and then wait for the sink fiber to complete. however... this is not always the correct behavior, in case of stream interruption or failure we want to interrupt the sink as well (unless there's a requirement to guarantee the sink sees all successful elements...) |
|
I think the correct fix to this will come about through deeper understanding of the underlying race condition causing the bug. |
/claim #8792
tapSinkusagemergewith aHaltStrategy.Both, that should guarantee execution of both sides (left and right) to the completion.This was the regression introduced in this PR: #8311