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

Hang if incremental assign is received while consumer is closing #4527

Closed
4 of 5 tasks
emasab opened this issue Dec 4, 2023 · 3 comments · Fixed by #4528
Closed
4 of 5 tasks

Hang if incremental assign is received while consumer is closing #4527

emasab opened this issue Dec 4, 2023 · 3 comments · Fixed by #4528

Comments

@emasab
Copy link
Contributor

emasab commented Dec 4, 2023

Description

Consumer in cooperative incremental mode will hang if an assignment callback is being processed while it's closing.

How to reproduce

Added a variation 3 to test 0113 to reproduce the bug. The test times out.

Checklist

Please provide the following information:

  • librdkafka version (release number or git tag): master
  • Apache Kafka version: any
  • librdkafka client configuration: any
  • Operating system: any
  • Critical issue
@mensfeld
Copy link

@emasab I think this works:

  1. unsubscribe
  2. wait so there are no assignments
  3. close

With this I was not able to hang it.

@nhaq-confluent
Copy link

@emasab could this issue be closed or should it remain open?

@emasab
Copy link
Contributor Author

emasab commented Mar 12, 2024

@nhaq-confluent what @mensfeld proposed is a workaround, but we have to review and merge this PR I created
#4528

emasab added a commit that referenced this issue Apr 18, 2024
emasab added a commit that referenced this issue Apr 18, 2024
While using the cooperative assignor, given an assignment is received while closing the consumer
it's possible that it gets stuck in state WAIT_ASSIGN_CALL, while the method is converted to
a full unassign. Solved by changing state from WAIT_ASSIGN_CALL to WAIT_UNASSIGN_CALL
while doing this conversion.

Closes #4527
anchitj pushed a commit that referenced this issue Jun 10, 2024
While using the cooperative assignor, given an assignment is received while closing the consumer
it's possible that it gets stuck in state WAIT_ASSIGN_CALL, while the method is converted to
a full unassign. Solved by changing state from WAIT_ASSIGN_CALL to WAIT_UNASSIGN_CALL
while doing this conversion.

Closes #4527
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants