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

Jason Gustafson commented on KAFKA-3394:
----------------------------------------

Yeah, I guess what I was thinking is whether we should keep the current 
protocol definitions and change the implementation to make sure that we support 
what is documented (and deal with the consequence of having nulls all over the 
place). Or if we want to have non-nullable strings, maybe we should update the 
protocol documentation.

As for how we're going to detect other such cases, I don't have any great 
ideas. I asked [~edenhill] if there were other cases where he depends on null 
values and the only other case he thought of was message keys and values, which 
I'm sure we already handle.

> 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