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)