Sean Quah created KAFKA-20845:
---------------------------------

             Summary: Consumer group downgrades can leave group in invalid 
state when classic group metadata is very large
                 Key: KAFKA-20845
                 URL: https://issues.apache.org/jira/browse/KAFKA-20845
             Project: Kafka
          Issue Type: Bug
          Components: group-coordinator
    Affects Versions: 4.3.0, 4.2.0
            Reporter: Sean Quah
            Assignee: Sean Quah
             Fix For: 4.4.0


When downgrading a consumer group, we apply changes to the group coordinator 
state directly and do not replay the produced records. However, when appending 
a large but compressible batch, we can allocate an empty batch, then flush, 
then allocate another empty batch. Flushing an empty batch silently fails the 
empty batch and rolls back coordinator state. We then write the records for the 
downgrade, which leaves the in-memory state inconsistent with the state on disk.

After further writes, the state on disk becomes unloadable because the next 
consumer group records cannot be applied to the classic group.
 # We should not flush an empty batch when appending large batches.
 # We could consider succeeding empty batches instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to