Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-14422

Consumer rebalance stuck after new static member joins a group with members not supporting static members

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.3.0, 2.4.0, 2.5.0, 2.6.0, 2.7.0, 2.8.0, 3.1.0, 3.0.0, 3.2.0, 3.3.0
    • 3.4.0, 3.3.2, 3.2.4
    • None
    • None

    Description

      When a consumer group on a version prior to 2.3 is rolled upgraded to a newer version and static membership is enabled in the meantime, the consumer group remains stuck, iff the leader is still on the old version.

      The issue is that setting `GroupInstanceId` in the response to the leader is only supported from JoinGroup version >= 5 and that `GroupInstanceId` is not ignorable nor handled anywhere else. Hence is there is at least one static member in the group, sending the JoinGroup response to the leader fails with a serialization error.

      > org.apache.kafka.common.errors.UnsupportedVersionException: Attempted to write a non-default groupInstanceId at version 2

      When this happens, the member stays around until the group coordinator is bounced because a member with a non-null `awaitingJoinCallback` is never expired.

      We should do two things here:
      1) `GroupInstanceId` should be ignorable;
      2) We should handle errors while calling callbacks.

      Attachments

        Issue Links

          Activity

            People

              dajac David Jacot
              dajac David Jacot
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: