You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "David Jacot (Jira)" <ji...@apache.org> on 2022/11/28 19:30:00 UTC

[jira] [Resolved] (KAFKA-14422) Consumer rebalance stuck after new static member joins a group with members not supporting static members

     [ https://issues.apache.org/jira/browse/KAFKA-14422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Jacot resolved KAFKA-14422.
---------------------------------
    Fix Version/s: 3.4.0
                   3.3.2
                   3.2.4
       Resolution: Fixed

> Consumer rebalance stuck after new static member joins a group with members not supporting static members
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-14422
>                 URL: https://issues.apache.org/jira/browse/KAFKA-14422
>             Project: Kafka
>          Issue Type: Bug
>    Affects Versions: 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
>            Reporter: David Jacot
>            Assignee: David Jacot
>            Priority: Major
>             Fix For: 3.4.0, 3.3.2, 3.2.4
>
>
> 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.



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