You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "sanghyeok An (Jira)" <ji...@apache.org> on 2026/05/20 12:52:00 UTC
[jira] [Created] (KAFKA-20601) ConsumerGroup static member rejoin can fail with GroupMaxSizeReachedException at max size
sanghyeok An created KAFKA-20601:
------------------------------------
Summary: ConsumerGroup static member rejoin can fail with GroupMaxSizeReachedException at max size
Key: KAFKA-20601
URL: https://issues.apache.org/jira/browse/KAFKA-20601
Project: Kafka
Issue Type: Bug
Reporter: sanghyeok An
Assignee: sanghyeok An
GroupMetadataManager#throwIfConsumerGroupIsFull() only checks whether the provided memberId already exists in the group:
{code:java}
group.numMembers() >= config.consumerGroupMaxSize()
&& (memberId.isEmpty() || !group.hasMember(memberId))
{code}
However, when a static member rejoins after leaving with the static leave epoch (-2), the rejoining member may use a new member ID. In that case, the existing static member is identified by instanceId, not by the new memberId.
Because the max-size check runs before resolving/replacing the static member, a valid static member rejoin can be rejected with GroupMaxSizeReachedException when the group is already at max size, even though the operation would replace an existing static member and would not increase the group size.
*Expected behavior*
A static member rejoin for an existing instanceId should not fail the max-size check solely because the rejoining memberId is new or empty. The check should account for existing static members, similar to checking group.hasStaticMember(instanceId).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)