Lianet Magrans created KAFKA-20428:
--------------------------------------
Summary: Consumer unsubscribe could fail processing previous
assignment change events
Key: KAFKA-20428
URL: https://issues.apache.org/jira/browse/KAFKA-20428
Project: Kafka
Issue Type: Bug
Components: clients, consumer
Reporter: Lianet Magrans
Assignee: Lianet Magrans
Fix For: 4.3.0
The async consumer unsubscribe processes background events (to run callbacks),
but it should ensure it does not apply events that may be in the queue but are
not relevant anymore while unsubscribing.
This is already done for error events (e.g, metadata), but it's not currently
handling ApplyAssignment events. If any ApplyAssignment is in the queue while
unsubscribing, it should probably be ignored (consumer clearing assignment
already).
At the moment, calls to consumer.unsubscribe could fail if called right after
an assignment change has been enqueued
{noformat}
Caused by: java.lang.IllegalArgumentException: Attempt to dynamically assign
partitions while manual assignment in use at
org.apache.kafka.clients.consumer.internals.SubscriptionState.assignFromSubscribed(SubscriptionState.java:317)
at
org.apache.kafka.clients.consumer.internals.SubscriptionState.assignFromSubscribedAwaitingCallback(SubscriptionState.java:961)
at
org.apache.kafka.clients.consumer.internals.ConsumerMembershipManager.applyAssignment(ConsumerMembershipManager.java:525)
at
org.apache.kafka.clients.consumer.internals.events.ApplicationEventProcessor.process(ApplicationEventProcessor.java:739){noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)