Dongnuo Lyu created KAFKA-17228: ----------------------------------- Summary: Static member using new protocol should always replace the one using the old protocol Key: KAFKA-17228 URL: https://issues.apache.org/jira/browse/KAFKA-17228 Project: Kafka Issue Type: Bug Reporter: Dongnuo Lyu Assignee: Dongnuo Lyu
{color:#172b4d}In the old protocol, when a static consumer shuts down, it [won't send explicit LeaveGroup request|https://github.com/apache/kafka/blob/010ab19b724ae011e85686ce47320f4f85d9a11f/clients/src/main/java/org/apache/kafka/clients/consumer/internals/AbstractCoordinator.java#L1158-L1164]. It's okay because the old protocol replaces the existing member whenever a new member with the same instance id joins.{color} {color:#172b4d}However in the new protocol, we [requires the existing member to send leave group|https://github.com/apache/kafka/blob/trunk/group-coordinator/src/main/java/org/apache/kafka/coordinator/group/GroupMetadataManager.java#L2236-L2238] for a new static member to replace the existing one. The gap causes the upgraded new consumer unable to join the group in both online/offline upgrade.{color} {color:#172b4d}We should make the static member using new protocol replace the static member using old protocol regardless of whether the latter has left the group.{color} -- This message was sent by Atlassian Jira (v8.20.10#820010)