gianm opened a new pull request, #17088:
URL: https://github.com/apache/druid/pull/17088

   Previously, the processor used "remainingChannels" to track the number of 
non-null entries of currentFrame. Now, "remainingChannels" tracks the number of 
channels that are unfinished.
   
   The difference is subtle. In the previous code, when an input channel was 
blocked upon exiting nextFrame(), the "currentFrames" entry would be null, and 
therefore the "remainingChannels" variable would be decremented. After the next 
await and call to populateCurrentFramesAndTournamentTree(), "remainingChannels" 
would be incremented if the channel had become unblocked after awaiting.
   
   This means that finished(), which returned true if remainingChannels was 
zero, would not be reliable if called between nextFrame() and the next await + 
populateCurrentFramesAndTournamentTree().
   
   This patch changes things such that finished() is always reliable. This 
fixes a regression introduced in PR #16911, which added a call to finished() 
that was, at that time, unsafe.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to