-
Notifications
You must be signed in to change notification settings - Fork 986
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
Result is lost when published on another executor #986
Comments
Awesome work, thanks a lot for looking into that. The issue supposedly happens only with Flux Mono The |
@mp911de sure, done |
We now use a single EventExecutor when emitting signals instead of submitting runnables to the EventExecutorGroup. This change retains execution order and prevents race conditions of completion arrival before an actual data signal. Original pull request: #987.
We now use a single EventExecutor when emitting signals instead of submitting runnables to the EventExecutorGroup. This change retains execution order and prevents race conditions of completion arrival before an actual data signal. Original pull request: #987.
Thanks a lot for all your support. The fix is scheduled for 5.1.5, expect a release by next week. |
@mp911de thanks for fast merge. Can you provide snapshot for the time being? |
Bug Report
Current Behavior
#905 This change introduces some kind of bug where result is lost
Input Code
Expected behavior/code
Basically,
counter1 == counter2 == 0
should be true, butcounter2
has value 1-100 instead of 0.Environment
Possible Solution
Make sure that single instance of
RedisPublisher.PublishOnSubscriber
will use sameExecutor
fromEventExecutorGroup
for all it's operations.Additional context
I think what happens is this:
RedisPublisher.OnNext
andRedisPublisher.OnComplete
are scheduled to the executor in the correct order, but since executor is non-immediate and multi-threaded race condition happens and sometimesRedisPublisher.OnComplete
is executed beforeRedisPublisher.OnNext
The text was updated successfully, but these errors were encountered: