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

Ming Liu commented on KAFKA-7692:
---------------------------------

Upon the close analysis, the bug is in ProducerStateManager.append, when it 
call:

   updatedEntry.addBatch(epoch, lastSeq, lastOffset, lastSeq - firstSeq, 
lastTimestamp)

because the sequenceId is int, the SequenceId should wrap around it is over 
Int.MaxValue, for example, as it is defined in 
defaultRecordBatch!IncrementSequence(). 

I am preparing the pull request for the fix. 

> updateFirstUnstableOffset NPE due to sequenceId overflow in 
> ProducerStateManager.append
> ---------------------------------------------------------------------------------------
>
>                 Key: KAFKA-7692
>                 URL: https://issues.apache.org/jira/browse/KAFKA-7692
>             Project: Kafka
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 2.0.0
>            Reporter: Ming Liu
>            Priority: Major
>             Fix For: 2.2.0
>
>
> When operating Kafka, we frequently saw this exception on Kafka server log, 
> Exception: 
> [2018-06-04 20:44:53,789] ERROR [KafkaServer id=19] Fatal error during 
> KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
> java.lang.NullPointerException
>     at kafka.log.Log.kafka$log$Log$$updateFirstUnstableOffset(Log.scala:792)
>     at kafka.log.Log.kafka$log$Log$$loadProducerState(Log.scala:518)
>     at kafka.log.Log.<init>(Log.scala:228)
>     at kafka.log.Log$.apply(Log.scala:1747)
>     at 
> kafka.log.LogManager.kafka$log$LogManager$$loadLog(LogManager.scala:255)
>     at 
> kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$11$$anonfun$apply$15$$anonfun$apply$2.apply$mcV$sp(LogManager.scala:335)
>     at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:62)
>     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)
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to