-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Issue 11689][Client] Fixed block forever bug in Consumer.batchReceive (
#11691) * Fixed block forever bug in Consumer.batchReceive Ensure that all poll() calls to pendingBatchReceives is done within the pinnedInternalExecutor to avoid a race condition where a peek and a subsequent poll get different pending receives. Moved the pinnedInternalExecutor into the ConsumerBase as both ConsumerImpl and MultiTopicsConsumerImpl require it. failingPendingReceive() now always submits its work to the internal executor returning a CompletableFuture and all callers treat it as an asynchronous operation. * Fix broken MultiTopicsConsumerImplTest Needed a real executor service to run the failPendingReceive() method. * Ensure all calls to messageReceived happen on internal executor * Readd missing return statement in ConsumerImpl.closeAsync() * Ensure correct usage of consumer internal executors Ensure that the externalPinnedExecutor is only called for user code and internalPinnedExecutor used for internal tasks. Some test refactoring to manage creation of executors. (cherry picked from commit bd942e1)
- Loading branch information
1 parent
3d3db81
commit 19c152b
Showing
8 changed files
with
230 additions
and
179 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.