Min Zhou created KAFKA-1749:
-------------------------------

             Summary: Brokers continually throw exceptions when there are 
hundreds of topic being fetched by mirrormaker
                 Key: KAFKA-1749
                 URL: https://issues.apache.org/jira/browse/KAFKA-1749
             Project: Kafka
          Issue Type: Bug
    Affects Versions: 0.8.1.1, 0.8.2
            Reporter: Min Zhou


Here is one piece of  millions of the exceptions. 

{noformat}
kafka.common.KafkaException: This operation cannot be completed on a complete 
request.
at kafka.network.Transmission$class.expectIncomplete(Transmission.scala:34)
at kafka.api.FetchResponseSend.expectIncomplete(FetchResponse.scala:191)
at kafka.api.FetchResponseSend.writeTo(FetchResponse.scala:214)
at kafka.network.Processor.write(SocketServer.scala:375)
at kafka.network.Processor.run(SocketServer.scala:247)
at java.lang.Thread.run(Thread.java:662)
{noformat}

We use tools to hook function kafka.api.FetchResponseSend.writeTo, found 
 fetchResponse.sizeInBytes was overflow.  Which means below code will get a 
result over the limit of integer type

{noformat}
val sizeInBytes =
    FetchResponse.headerSize +
    dataGroupedByTopic.foldLeft(0) ((folded, curr) => {
      val topicData = TopicData(curr._1, curr._2.map {
        case (topicAndPartition, partitionData) => 
(topicAndPartition.partition, partitionData)
      })
      folded + topicData.sizeInBytes
    })

{noformat} 

 If we just fetch few topics by mirrormaker, the brokers ran well.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to