You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2020/01/08 14:00:00 UTC

[jira] [Commented] (KAFKA-8398) NPE when unmapping files after moving log directories using AlterReplicaLogDirs

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

ASF GitHub Bot commented on KAFKA-8398:
---------------------------------------

jaikiran commented on pull request #7387: [2.2 branch] KAFKA-8398 Prevent NPE when trying to forceUnmap
URL: https://github.com/apache/kafka/pull/7387
 
 
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> NPE when unmapping files after moving log directories using AlterReplicaLogDirs
> -------------------------------------------------------------------------------
>
>                 Key: KAFKA-8398
>                 URL: https://issues.apache.org/jira/browse/KAFKA-8398
>             Project: Kafka
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 2.2.0
>            Reporter: Vikas Singh
>            Priority: Minor
>         Attachments: AlterReplicaLogDirs.txt
>
>
> The NPE occurs after the AlterReplicaLogDirs command completes successfully and when unmapping older regions. The relevant part of log is in attached log file. Here is the stacktrace (which is repeated for both index files):
>  
> {code:java}
> [2019-05-20 14:08:13,999] ERROR Error unmapping index /tmp/kafka-logs/test-0.567a0d8ff88b45ab95794020d0b2e66f-delete/00000000000000000000.index (kafka.log.OffsetIndex)
> java.lang.NullPointerException
> at org.apache.kafka.common.utils.MappedByteBuffers.unmap(MappedByteBuffers.java:73)
> at kafka.log.AbstractIndex.forceUnmap(AbstractIndex.scala:318)
> at kafka.log.AbstractIndex.safeForceUnmap(AbstractIndex.scala:308)
> at kafka.log.AbstractIndex.$anonfun$closeHandler$1(AbstractIndex.scala:257)
> at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
> at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:251)
> at kafka.log.AbstractIndex.closeHandler(AbstractIndex.scala:257)
> at kafka.log.AbstractIndex.deleteIfExists(AbstractIndex.scala:226)
> at kafka.log.LogSegment.$anonfun$deleteIfExists$6(LogSegment.scala:597)
> at kafka.log.LogSegment.delete$1(LogSegment.scala:585)
> at kafka.log.LogSegment.$anonfun$deleteIfExists$5(LogSegment.scala:597)
> at kafka.utils.CoreUtils$.$anonfun$tryAll$1(CoreUtils.scala:115)
> at kafka.utils.CoreUtils$.$anonfun$tryAll$1$adapted(CoreUtils.scala:114)
> at scala.collection.immutable.List.foreach(List.scala:392)
> at kafka.utils.CoreUtils$.tryAll(CoreUtils.scala:114)
> at kafka.log.LogSegment.deleteIfExists(LogSegment.scala:599)
> at kafka.log.Log.$anonfun$delete$3(Log.scala:1762)
> at kafka.log.Log.$anonfun$delete$3$adapted(Log.scala:1762)
> at scala.collection.Iterator.foreach(Iterator.scala:941)
> at scala.collection.Iterator.foreach$(Iterator.scala:941)
> at scala.collection.AbstractIterator.foreach(Iterator.scala:1429)
> at scala.collection.IterableLike.foreach(IterableLike.scala:74)
> at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
> at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
> at kafka.log.Log.$anonfun$delete$2(Log.scala:1762)
> at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
> at kafka.log.Log.maybeHandleIOException(Log.scala:2013)
> at kafka.log.Log.delete(Log.scala:1759)
> at kafka.log.LogManager.deleteLogs(LogManager.scala:761)
> at kafka.log.LogManager.$anonfun$deleteLogs$6(LogManager.scala:775)
> at kafka.utils.KafkaScheduler.$anonfun$schedule$2(KafkaScheduler.scala:114)
> at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:63)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> 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)
> [{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)