[
https://issues.apache.org/jira/browse/KAFKA-15851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17807561#comment-17807561
]
Yu Wang commented on KAFKA-15851:
---------------------------------
got similar stack trace in 2.5.1, recovered after restart.
{code:java}
java.nio.BufferOverflowException
at java.nio.Buffer.nextPutIndex(Buffer.java:533)
at java.nio.DirectByteBuffer.putLong(DirectByteBuffer.java:796)
at kafka.log.TimeIndex.$anonfun$maybeAppend$1(TimeIndex.scala:134)
at kafka.log.TimeIndex.maybeAppend(TimeIndex.scala:114)
at kafka.log.LogSegment.onBecomeInactiveSegment(LogSegment.scala:507)
at kafka.log.Log.$anonfun$roll$8(Log.scala:1900)
at kafka.log.Log.$anonfun$roll$2(Log.scala:1900)
at kafka.log.Log.roll(Log.scala:2322)
at kafka.log.Log.maybeRoll(Log.scala:1849)
at kafka.log.Log.$anonfun$append$2(Log.scala:1148)
at kafka.log.Log.append(Log.scala:2322)
at kafka.log.Log.appendAsFollower(Log.scala:1017)
at
kafka.cluster.Partition.$anonfun$doAppendRecordsToFollowerOrFutureReplica$1(Partition.scala:924)
at
kafka.cluster.Partition.doAppendRecordsToFollowerOrFutureReplica(Partition.scala:917)
at
kafka.cluster.Partition.appendRecordsToFollowerOrFutureReplica(Partition.scala:931)
at
kafka.server.ReplicaFetcherThread.processPartitionData(ReplicaFetcherThread.scala:167)
at
kafka.server.AbstractFetcherThread.$anonfun$processFetchRequest$7(AbstractFetcherThread.scala:332)
at
kafka.server.AbstractFetcherThread.$anonfun$processFetchRequest$6(AbstractFetcherThread.scala:320)
at
kafka.server.AbstractFetcherThread.$anonfun$processFetchRequest$6$adapted(AbstractFetcherThread.scala:319)
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
at scala.collection.AbstractIterable.foreach(Iterable.scala:921)
at
kafka.server.AbstractFetcherThread.processFetchRequest(AbstractFetcherThread.scala:319)
at
kafka.server.AbstractFetcherThread.$anonfun$maybeFetch$3(AbstractFetcherThread.scala:135)
at
kafka.server.AbstractFetcherThread.maybeFetch(AbstractFetcherThread.scala:134)
at
kafka.server.AbstractFetcherThread.doWork(AbstractFetcherThread.scala:117)
at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:96)
{code}
> broker under replicated due to error java.nio.BufferOverflowException
> ---------------------------------------------------------------------
>
> Key: KAFKA-15851
> URL: https://issues.apache.org/jira/browse/KAFKA-15851
> Project: Kafka
> Issue Type: Bug
> Affects Versions: 3.3.2
> Environment: Kafka Version: 3.3.2
> Deployment mode: zookeeper
> Reporter: wangliucheng
> Priority: Major
> Attachments: p1.png
>
>
> In my kafka cluster, kafka update 2.0 to 3.3.2 version
> {*}first start failed{*}, because the same directory was configured
> The error is as follows:
>
> {code:java}
> [2023-11-16 10:04:09,952] ERROR (main kafka.Kafka$ 159) Exiting Kafka due to
> fatal exception during startup.
> java.lang.IllegalStateException: Duplicate log directories for
> skydas_sc_tdevirsec-12 are found in both
> /data01/kafka/log/skydas_sc_tdevirsec-12 and
> /data07/kafka/log/skydas_sc_tdevirsec-12. It is likely because log directory
> failure happened while broker was replacing current replica with future
> replica. Recover broker from this failure by manually deleting one of the two
> directories for this partition. It is recommended to delete the partition in
> the log directory that is known to have failed recently.
> at kafka.log.LogManager.loadLog(LogManager.scala:305)
> at kafka.log.LogManager.$anonfun$loadLogs$14(LogManager.scala:403)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> [2023-11-16 10:04:09,953] INFO (kafka-shutdown-hook kafka.server.KafkaServer
> 66) [KafkaServer id=1434] shutting down {code}
>
>
> *second,* remove /data07/kafka/log in log.dirs and start kafka also reported
> an error :
>
> {code:java}
> [2023-11-16 10:13:10,713] INFO (ReplicaFetcherThread-3-1008
> kafka.log.UnifiedLog 66) [UnifiedLog partition=ty_udp_full-60,
> dir=/data04/kafka/log] Rolling new log segment (log_size =
> 755780551/1073741824}, offset_index_size = 2621440/2621440, time_index_size =
> 1747626/1747626, inactive_time_ms = 2970196/604800000).
> [2023-11-16 10:13:10,714] ERROR (ReplicaFetcherThread-3-1008
> kafka.server.ReplicaFetcherThread 76) [ReplicaFetcher replicaId=1434,
> leaderId=1008, fetcherId=3] Unexpected error occurred while processing data
> for partition ty_udp_full-60 at offset 2693467479
> java.nio.BufferOverflowException
> at java.nio.Buffer.nextPutIndex(Buffer.java:555)
> at java.nio.DirectByteBuffer.putLong(DirectByteBuffer.java:794)
> at kafka.log.TimeIndex.$anonfun$maybeAppend$1(TimeIndex.scala:135)
> at kafka.log.TimeIndex.maybeAppend(TimeIndex.scala:114)
> at kafka.log.LogSegment.onBecomeInactiveSegment(LogSegment.scala:510)
> at kafka.log.LocalLog.$anonfun$roll$9(LocalLog.scala:529)
> at kafka.log.LocalLog.$anonfun$roll$9$adapted(LocalLog.scala:529)
> at scala.Option.foreach(Option.scala:437)
> at kafka.log.LocalLog.$anonfun$roll$2(LocalLog.scala:529)
> at kafka.log.LocalLog.roll(LocalLog.scala:786)
> at kafka.log.UnifiedLog.roll(UnifiedLog.scala:1537)
> at kafka.log.UnifiedLog.maybeRoll(UnifiedLog.scala:1523)
> at kafka.log.UnifiedLog.append(UnifiedLog.scala:919)
> at kafka.log.UnifiedLog.appendAsFollower(UnifiedLog.scala:778)
> at
> kafka.cluster.Partition.doAppendRecordsToFollowerOrFutureReplica(Partition.scala:1121)
> at
> kafka.cluster.Partition.appendRecordsToFollowerOrFutureReplica(Partition.scala:1128)
> at
> kafka.server.ReplicaFetcherThread.processPartitionData(ReplicaFetcherThread.scala:121)
> at
> kafka.server.AbstractFetcherThread.$anonfun$processFetchRequest$7(AbstractFetcherThread.scala:336)
> at scala.Option.foreach(Option.scala:437)
> at
> kafka.server.AbstractFetcherThread.$anonfun$processFetchRequest$6(AbstractFetcherThread.scala:325)
> at
> kafka.server.AbstractFetcherThread.$anonfun$processFetchRequest$6$adapted(AbstractFetcherThread.scala:324)
> at
> kafka.utils.Implicits$MapExtensionMethods$.$anonfun$forKeyValue$1(Implicits.scala:62)
> at
> scala.collection.convert.JavaCollectionWrappers$JMapWrapperLike.foreachEntry(JavaCollectionWrappers.scala:359)
> at
> scala.collection.convert.JavaCollectionWrappers$JMapWrapperLike.foreachEntry$(JavaCollectionWrappers.scala:355)
> at
> scala.collection.convert.JavaCollectionWrappers$AbstractJMapWrapper.foreachEntry(JavaCollectionWrappers.scala:309)
> at
> kafka.server.AbstractFetcherThread.processFetchRequest(AbstractFetcherThread.scala:324)
> at
> kafka.server.AbstractFetcherThread.$anonfun$maybeFetch$3(AbstractFetcherThread.scala:124)
> at
> kafka.server.AbstractFetcherThread.$anonfun$maybeFetch$3$adapted(AbstractFetcherThread.scala:123)
> at scala.Option.foreach(Option.scala:437)
> at
> kafka.server.AbstractFetcherThread.maybeFetch(AbstractFetcherThread.scala:123)
> at
> kafka.server.AbstractFetcherThread.doWork(AbstractFetcherThread.scala:106)
> at
> kafka.server.ReplicaFetcherThread.doWork(ReplicaFetcherThread.scala:97)
> at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:96)
> [2023-11-16 10:13:10,714] WARN (ReplicaFetcherThread-3-1008
> kafka.server.ReplicaFetcherThread 70) [ReplicaFetcher replicaId=1434,
> leaderId=1008, fetcherId=3] Partition ty_udp_full-60 marked as failed
> {code}
>
> start again and finally run normally but log rolled
> I want to know how this error occurred, I suspect that the status of the
> timeindex file is incorrect,
> Thanks
> The detailed log information can be found in server.log
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)