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)

Reply via email to