Retry RebalanceInProgressException
in CommitRecovery.Default
#1312
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1213
After inspecting the internals of Kafka Client's
KafkaConsumer
, any time aRebalanceInProgressException
is thrown, the message states it can be retried after a call topoll()
.https://github.com/apache/kafka/blob/5e3c2b738d253ff51a7a61fe08713f564ab647fa/clients/src/main/java/org/apache/kafka/clients/consumer/internals/ConsumerCoordinator.java#L1347
https://github.com/apache/kafka/blob/5e3c2b738d253ff51a7a61fe08713f564ab647fa/clients/src/main/java/org/apache/kafka/clients/consumer/internals/ConsumerCoordinator.java#L1437
https://github.com/apache/kafka/blob/5e3c2b738d253ff51a7a61fe08713f564ab647fa/clients/src/main/java/org/apache/kafka/clients/consumer/internals/ConsumerCoordinator.java#L1457
https://github.com/apache/kafka/blob/5e3c2b738d253ff51a7a61fe08713f564ab647fa/clients/src/main/java/org/apache/kafka/clients/consumer/internals/ConsumerCoordinator.java#L1470
Given that we handle those
poll()
calls internally at intervals, it makes sense to follow the recommendation and also retry the commit requests. Eventually the rebalance will finish and the offsets will be committed successfully (or fail if the partitions are not assigned anymore to the consumer).