Travis Bischel created KAFKA-12701:
--------------------------------------

             Summary: NPE in MetadataRequest when using topic IDs
                 Key: KAFKA-12701
                 URL: https://issues.apache.org/jira/browse/KAFKA-12701
             Project: Kafka
          Issue Type: Bug
    Affects Versions: 2.8.0
            Reporter: Travis Bischel


Authorized result checking relies on topic name to not be null, which, when 
using topic IDs, it is.

Unlike the logic in handleDeleteTopicsRequest, hanelMetadataRequest does not 
check zk for the names corresponding to topic IDs if topic IDs are present.

{noformat}
[2021-04-21 05:53:01,463] ERROR [KafkaApi-1] Error when handling request: 
clientId=kgo, correlationId=1, api=METADATA, version=11, 
body=MetadataRequestData(topics=[MetadataRequestTopic(topicId=LmqOoFOASnqQp_4-oJgeKA,
 name=null)], allowAutoTopicCreation=false, 
includeClusterAuthorizedOperations=false, 
includeTopicAuthorizedOperations=false) (kafka.server.RequestHandlerHelper)
java.lang.NullPointerException: name
        at java.base/java.util.Objects.requireNonNull(Unknown Source)
        at 
org.apache.kafka.common.resource.ResourcePattern.<init>(ResourcePattern.java:50)
        at 
kafka.server.AuthHelper.$anonfun$filterByAuthorized$3(AuthHelper.scala:121)
        at scala.collection.Iterator$$anon$9.next(Iterator.scala:575)
        at scala.collection.mutable.Growable.addAll(Growable.scala:62)
        at scala.collection.mutable.Growable.addAll$(Growable.scala:57)
        at scala.collection.mutable.ArrayBuffer.addAll(ArrayBuffer.scala:142)
        at scala.collection.mutable.ArrayBuffer.addAll(ArrayBuffer.scala:42)
        at scala.collection.mutable.ArrayBuffer$.from(ArrayBuffer.scala:258)
        at scala.collection.mutable.ArrayBuffer$.from(ArrayBuffer.scala:247)
        at scala.collection.SeqFactory$Delegate.from(Factory.scala:306)
        at scala.collection.IterableOnceOps.toBuffer(IterableOnce.scala:1270)
        at scala.collection.IterableOnceOps.toBuffer$(IterableOnce.scala:1270)
        at scala.collection.AbstractIterator.toBuffer(Iterator.scala:1288)
        at kafka.server.AuthHelper.filterByAuthorized(AuthHelper.scala:120)
        at 
kafka.server.KafkaApis.handleTopicMetadataRequest(KafkaApis.scala:1146)
        at kafka.server.KafkaApis.handle(KafkaApis.scala:170)
        at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:74)
        at java.base/java.lang.Thread.run(Unknown Source)
[2021-04-21 05:53:01,464] ERROR [Kafka Request Handler 1 on Broker 1], 
Exception when handling request (kafka.server.KafkaRequestHandler)
java.lang.NullPointerException
        at 
org.apache.kafka.common.message.MetadataResponseData$MetadataResponseTopic.addSize(MetadataResponseData.java:1247)
        at 
org.apache.kafka.common.message.MetadataResponseData.addSize(MetadataResponseData.java:417)
        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.sendErrorOrCloseConnection(RequestHandlerHelper.scala:155)
        at 
kafka.server.RequestHandlerHelper.sendErrorResponseMaybeThrottle(RequestHandlerHelper.scala:109)
        at 
kafka.server.RequestHandlerHelper.handleError(RequestHandlerHelper.scala:79)
        at kafka.server.KafkaApis.handle(KafkaApis.scala:229)
        at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:74)
        at java.base/java.lang.Thread.run(Unknown Source)
{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to