[ https://issues.apache.org/jira/browse/KAFKA-3394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15194134#comment-15194134 ]
Grant Henke commented on KAFKA-3394: ------------------------------------ [~hachikuji] I agree that allowing nulls everywhere is pretty risky. I wasn't making a comment on which approach we should take. I was just commenting that we should evaluate/understand the problem holistically given that its a widespread issue. If a (third party) client runs into an issue with any string in the protocol are we going to make that string nullable? If the answer is yes, should we wait until they run into the issue and handle it on a case by cases basis? > Broker fails to parse Null Metadata in OffsetCommit requests > ------------------------------------------------------------ > > Key: KAFKA-3394 > URL: https://issues.apache.org/jira/browse/KAFKA-3394 > Project: Kafka > Issue Type: Bug > Components: core > Affects Versions: 0.10.0.0 > Reporter: Magnus Edenhill > Assignee: Jason Gustafson > Priority: Blocker > Fix For: 0.10.0.0 > > > librdkafka sends a Null Metadata string (size -1) in its OffsetCommitRequests > when there is no metadata, this unfortunately leads to an exception on the > broker that expects a non-null string. > {noformat} > [2016-03-11 11:11:57,623] ERROR Closing socket for > 10.191.0.33:9092-10.191.0.33:56503 because of error (kafka.network.Processor) > kafka.network.InvalidRequestException: Error getting request for apiKey: 8 > and apiVersion: 1 > at > kafka.network.RequestChannel$Request.liftedTree2$1(RequestChannel.scala:91) > at kafka.network.RequestChannel$Request.<init>(RequestChannel.scala:88) > at kafka.network.Processor$$anonfun$run$11.apply(SocketServer.scala:426) > at kafka.network.Processor$$anonfun$run$11.apply(SocketServer.scala:421) > at scala.collection.Iterator$class.foreach(Iterator.scala:727) > at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) > at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) > at scala.collection.AbstractIterable.foreach(Iterable.scala:54) > at kafka.network.Processor.run(SocketServer.scala:421) > at java.lang.Thread.run(Thread.java:745) > Caused by: org.apache.kafka.common.protocol.types.SchemaException: Error > reading field 'topics': Error reading field 'partitions': Error reading field > 'metadata': java.lang.NegativeArraySizeException > at org.apache.kafka.common.protocol.types.Schema.read(Schema.java:73) > at > org.apache.kafka.common.requests.OffsetCommitRequest.parse(OffsetCommitRequest.java:260) > at > org.apache.kafka.common.requests.AbstractRequest.getRequest(AbstractRequest.java:50) > at > kafka.network.RequestChannel$Request.liftedTree2$1(RequestChannel.scala:88) > ... 9 more > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)