This repository has been archived by the owner on Jan 8, 2020. It is now read-only.
Fix PartitionConsumer race condition on Close. #258
Merged
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.
Sarama-cluster calls Sarama Close on Consumer.Close and PartitionConsumer.AsyncClose.
When using the sarama-consumer
PartitionConsumer
abstraction, this may result in dataloss, because on rebalance or consumer shutdown, consumer application and sarama will both read from the sameMessages
channel which will result in the application receiving message stream with holes (e.g., offset 100, 102, 104, etc). SincePartitionConsumer
application is not synchronously notified of rebalance, this diff changes sarama cluster to useAsyncClose
to prevent this dual drain race condition.