You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Jean-Baptiste Mazon (Jira)" <ji...@apache.org> on 2021/09/16 20:53:00 UTC
[jira] [Updated] (KAFKA-13307) NPE in SyncGroup after an “empty” JoinGroup
[ https://issues.apache.org/jira/browse/KAFKA-13307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jean-Baptiste Mazon updated KAFKA-13307:
----------------------------------------
Priority: Minor (was: Major)
> NPE in SyncGroup after an “empty” JoinGroup
> -------------------------------------------
>
> Key: KAFKA-13307
> URL: https://issues.apache.org/jira/browse/KAFKA-13307
> Project: Kafka
> Issue Type: Bug
> Affects Versions: 2.8.0
> Environment: This is kafka_2.13-2.8.0, tarball from the website, on a single-host 3-node Linux 5.13.13 setup.
> Reporter: Jean-Baptiste Mazon
> Priority: Minor
> Attachments: join_then_sync.raw
>
>
> Got this while socket-hacking on my raw consumer (binary messages attached, but may not be that directly usable as there's a generated UUID involved).
>
> Summary:
> # → JoinGroup Request v0 (groupId = "test-consumer", sessionTimeoutMs = 10000, memberId = empty string, protocolType = "consumer", protocols = empty array)
> # ← JoinGroup Response v0 (errorCode = 0 (None), generationId = 7, protocolName = empty string, leader = "null-cd85a8fc-b376-44aa-a4b0-641d01466d10", memberId = "null-cd85a8fc-b376-44aa-a4b0-641d01466d10", members = [\{memberId = "null-cd85a8fc-b376-44aa-a4b0-641d01466d10", metadata = empty bytes}])
> # → SyncGroup Request v0 (groupId = "test-consumer", generationId = echo, memberId = echo, assignments = empty bytes)
> # ← SyncGroup Response v0 (errorCode = -1 (*UnknownServerError, with a NPE*), memberAssignment = empty bytes)
>
> Server-side log:
> {noformat}
> [2021-09-16 21:46:15,979] ERROR [KafkaApi-0] Error when handling request: clientId=null, correlationId=67305986, api=SYNC_GROUP, version=0, body=SyncGroupRequestData(groupId='test-consumer', generationId=6, memberId='null-0e29c037-55b7-413a-9822-8b9d87b49a89', groupInstanceId=null, protocolType=null, protocolName=null, assignments=[]) (kafka.server.RequestHandlerHelper)
> java.lang.NullPointerException: Cannot invoke "String.getBytes(java.nio.charset.Charset)" because "this.clientId" is null
> at kafka.internals.generated.GroupMetadataValue$MemberMetadata.addSize(GroupMetadataValue.java:643)
> at kafka.internals.generated.GroupMetadataValue.addSize(GroupMetadataValue.java:261)
> at org.apache.kafka.common.protocol.Message.size(Message.java:51)
> at org.apache.kafka.common.protocol.MessageUtil.toVersionPrefixedByteBuffer(MessageUtil.java:201)
> at org.apache.kafka.common.protocol.MessageUtil.toVersionPrefixedBytes(MessageUtil.java:210)
> at kafka.coordinator.group.GroupMetadataManager$.groupMetadataValue(GroupMetadataManager.scala:1065)
> at kafka.coordinator.group.GroupMetadataManager.storeGroup(GroupMetadataManager.scala:250)
> at kafka.coordinator.group.GroupCoordinator.$anonfun$doSyncGroup$1(GroupCoordinator.scala:421)
> at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
> at kafka.coordinator.group.GroupMetadata.inLock(GroupMetadata.scala:227)
> at kafka.coordinator.group.GroupCoordinator.handleSyncGroup(GroupCoordinator.scala:381)
> at kafka.server.KafkaApis.handleSyncGroupRequest(KafkaApis.scala:1555)
> at kafka.server.KafkaApis.handle(KafkaApis.scala:181)
> at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:74)
> at java.base/java.lang.Thread.run(Thread.java:831){noformat}
>
> A similar one can be triggered with DescribeGroups by launching {{kafka-consumer-groups.sh --describe --group test-consumer}} shortly after:
> {noformat}
> [2021-09-16 21:47:49,911] ERROR [KafkaApi-0] Error when handling request: clientId=adminclient-1, correlationId=4, api=DESCRIBE_GROUPS, version=5, body=DescribeGroupsRequestData(groups=[test-consumer], includeAuthorizedOperations=false) (kafka.server.RequestHandlerHelper)
> java.lang.NullPointerException: Cannot invoke "String.getBytes(java.nio.charset.Charset)" because "this.clientId" is null
> at org.apache.kafka.common.message.DescribeGroupsResponseData$DescribedGroupMember.addSize(DescribeGroupsResponseData.java:1116)
> at org.apache.kafka.common.message.DescribeGroupsResponseData$DescribedGroup.addSize(DescribeGroupsResponseData.java:640)
> at org.apache.kafka.common.message.DescribeGroupsResponseData.addSize(DescribeGroupsResponseData.java:212)
> at org.apache.kafka.common.protocol.SendBuilder.buildSend(SendBuilder.java:218)
> at org.apache.kafka.common.protocol.SendBuilder.buildResponseSend(SendBuilder.java:200)
> at org.apache.kafka.common.requests.AbstractResponse.toSend(AbstractResponse.java:43)
> at org.apache.kafka.common.requests.RequestContext.buildResponseSend(RequestContext.java:111)
> at kafka.network.RequestChannel$Request.buildResponseSend(RequestChannel.scala:132)
> at kafka.server.RequestHandlerHelper.sendResponse(RequestHandlerHelper.scala:185)
> at kafka.server.RequestHandlerHelper.sendResponseMaybeThrottle(RequestHandlerHelper.scala:101)
> at kafka.server.KafkaApis.sendResponseCallback$3(KafkaApis.scala:1378)
> at kafka.server.KafkaApis.handleDescribeGroupRequest(KafkaApis.scala:1417)
> at kafka.server.KafkaApis.handle(KafkaApis.scala:182)
> at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:74)
> at java.base/java.lang.Thread.run(Thread.java:831){noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)