Skip to content
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

Remove lost partitions from assigned streams #1350

Merged
merged 9 commits into from
Oct 29, 2024
Merged

Remove lost partitions from assigned streams #1350

merged 9 commits into from
Oct 29, 2024

Conversation

svroonland
Copy link
Collaborator

@svroonland svroonland commented Oct 29, 2024

Fixes #1288. See also #1233 and #1250.

When all partitions are lost after some connection issue to the broker, the streams for lost partitions are ended but polling stops, due to the conditions in Runloop.State#shouldPoll. This PR fixes this by removing the lost partition streams from the assignedStreams in the state, thereby not disabling polling.

Also adds a warning that is logged whenever the assigned partitions (according to the apache kafka consumer) are different from the assigned streams, which helps to identify other issues or any future regressions of this issue.

Still needs a good test, the MockConsumer used in other tests unfortunately does not allow simulating lost partitions, and the exact behavior of the kafka client in this situation is hard to predict..
Includes a test that fails when undoing the change to Runloop

Copy link
Collaborator

@erikvanoosten erikvanoosten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this is very good!
I am pretty sure we had code like this in the past (minus the log statement), that it was removed when we started to fail on lost partitions, and then forgot to restore it when we no longer failed on lost partitions.

@erikvanoosten
Copy link
Collaborator

erikvanoosten commented Oct 29, 2024

Let's ship this asap! 😄

@svroonland svroonland marked this pull request as ready for review October 29, 2024 18:44
@svroonland svroonland merged commit 5e4b287 into master Oct 29, 2024
14 checks passed
@svroonland svroonland deleted the fix-1288 branch October 29, 2024 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Consumer doesn't consume after onLost
2 participants