[ 
https://issues.apache.org/jira/browse/KAFKA-3394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15194089#comment-15194089
 ] 

Grant Henke commented on KAFKA-3394:
------------------------------------

This could happen for basically any string in the protocol. The java protocol 
implementation assumes that string was not nullable, while the old Scala 
messages allowed all strings to be nullable. This came up in KAFKA-3088 where 
we added NULLABLE_STRING and a default for the client id. 

If this is considered a regression, we should consider holistically how we want 
to handle the remaining strings that are not nullable. 

> 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)

Reply via email to