[ https://issues.apache.org/jira/browse/KAFKA-4576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15795040#comment-15795040 ]
huxi commented on KAFKA-4576: ----------------------------- If we use a loop structure to collect all the 12 bytes, there is a possibility that the loop never gets exited which otherwise is a very very rare situation. Should we handle such situation if we decide to employ the loop? > Log segments close to max size break on fetch > --------------------------------------------- > > Key: KAFKA-4576 > URL: https://issues.apache.org/jira/browse/KAFKA-4576 > Project: Kafka > Issue Type: Bug > Components: log > Affects Versions: 0.10.1.1 > Reporter: Ivan Babrou > Assignee: huxi > Priority: Critical > Fix For: 0.10.2.0 > > > We are running Kafka 0.10.1.1~rc1 (it's the same as 0.10.1.1). > Max segment size is set to 2147483647 globally, that's 1 byte less than max > signed int32. > Every now and then we see failures like this: > {noformat} > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: ERROR [Replica Manager on > Broker 1006]: Error processing fetch operation on partition [mytopic,11], > offset 483579108587 (kafka.server.ReplicaManager) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: > java.lang.IllegalStateException: Failed to read complete buffer for > targetOffset 483686627237 startPosition 2145701130 in > /disk/data0/kafka-logs/mytopic-11/00000000483571890786.log > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.log.FileMessageSet.searchForOffsetWithSize(FileMessageSet.scala:145) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.log.LogSegment.translateOffset(LogSegment.scala:128) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.log.LogSegment.read(LogSegment.scala:180) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.log.Log.read(Log.scala:563) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.server.ReplicaManager.kafka$server$ReplicaManager$$read$1(ReplicaManager.scala:567) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.server.ReplicaManager$$anonfun$readFromLocalLog$1.apply(ReplicaManager.scala:606) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.server.ReplicaManager$$anonfun$readFromLocalLog$1.apply(ReplicaManager.scala:605) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > scala.collection.Iterator$class.foreach(Iterator.scala:893) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > scala.collection.AbstractIterator.foreach(Iterator.scala:1336) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > scala.collection.IterableLike$class.foreach(IterableLike.scala:72) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > scala.collection.AbstractIterable.foreach(Iterable.scala:54) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.server.ReplicaManager.readFromLocalLog(ReplicaManager.scala:605) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.server.ReplicaManager.fetchMessages(ReplicaManager.scala:469) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.server.KafkaApis.handleFetchRequest(KafkaApis.scala:534) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.server.KafkaApis.handle(KafkaApis.scala:79) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:60) > Dec 25 18:20:47 myhost kafka-run-class.sh[2054]: at > java.lang.Thread.run(Thread.java:745) > {noformat} > {noformat} > ... > -rw-r--r-- 1 kafka kafka 0 Dec 25 15:15 > 00000000483557418204.timeindex > -rw-r--r-- 1 kafka kafka 9496 Dec 25 15:26 00000000483564654488.index > -rw-r--r-- 1 kafka kafka 2145763964 Dec 25 15:26 00000000483564654488.log > -rw-r--r-- 1 kafka kafka 0 Dec 25 15:26 > 00000000483564654488.timeindex > -rw-r--r-- 1 kafka kafka 9576 Dec 25 15:37 00000000483571890786.index > -rw-r--r-- 1 kafka kafka 2147483644 Dec 25 15:37 00000000483571890786.log > -rw-r--r-- 1 kafka kafka 0 Dec 25 15:37 > 00000000483571890786.timeindex > -rw-r--r-- 1 kafka kafka 9568 Dec 25 15:48 00000000483579135712.index > -rw-r--r-- 1 kafka kafka 2146791360 Dec 25 15:48 00000000483579135712.log > -rw-r--r-- 1 kafka kafka 0 Dec 25 15:48 > 00000000483579135712.timeindex > -rw-r--r-- 1 kafka kafka 9408 Dec 25 15:59 00000000483586374164.index > ... > {noformat} > Here 00000000483571890786.log is just 3 bytes below the max size. -- This message was sent by Atlassian JIRA (v6.3.4#6332)