Description
We have a single lock which is used for protecting access to shared coordinator state between the foreground thread and the background heartbeat thread. Currently, the onPartitionsRevoked callback is invoked while holding this lock, which prevents the heartbeat thread from sending any heartbeats. If the heartbeat thread is blocked for longer than the session timeout, than the consumer is kicked out of the group. Typically this is not a problem because onPartitionsRevoked might only commit offsets, but for Kafka Streams, there is some expensive cleanup logic which can take longer than the session timeout.
Attachments
Issue Links
- is related to
-
KAFKA-4118 StreamsSmokeTest.test_streams started failing since 18 August build
- Resolved
- links to