gharris1727 commented on PR #14762:
URL: https://github.com/apache/kafka/pull/14762#issuecomment-1813403690

   The only problem I have with this approach is that the [official 
documentation](https://kafka.apache.org/36/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#multithreaded)
 states that the KafkaConsumer is not thread-safe, except for wakeup(). They 
recommend calling wakeup() on a different thread, and then close() on the 
primary thread. In the blocked connector case we're unlikely to be within a 
consumer call, but we technically don't have exclusive access to the consumer 
and could receive a ConcurrentModificationException on any of the consumer 
methods.
   
   I think if we want cancellation to close the consumer, we'd also need to 
"take ownership" of the consumer and prevent the main thread from using the 
consumer. We already have isCancelled() guards on offset commit, but maybe that 
isn't sufficient to prevent ConcurrentModificationExceptions. I'll have to look 
into this more.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to