[
https://issues.apache.org/jira/browse/AMQ-5339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14168844#comment-14168844
]
Serge Smertin commented on AMQ-5339:
------------------------------------
actually, it's more or less possible to restore corrupt store file, but it
needs way more attention.
> LevelDBClient operation failed. NullPointerException after entering recovery
> mode
> ---------------------------------------------------------------------------------
>
> Key: AMQ-5339
> URL: https://issues.apache.org/jira/browse/AMQ-5339
> Project: ActiveMQ
> Issue Type: Bug
> Components: activemq-leveldb-store
> Affects Versions: 5.8.0
> Environment: CentOS 6.5
> Reporter: Serge Smertin
> Priority: Critical
>
> Once in a while we're getting following exception in AMQ logs and there is no
> other way than purging the queue. How can we overcome this issue? Is it okay
> to use LevelDB store now? Any answers? :)
> {noformat}
> 2014-09-01 13:25:52,065 [erSimpleAppMain] DEBUG AbstractRegion
> - localhost adding destination: queue://files/dead
> 2014-09-01 13:25:52,081 [erSimpleAppMain] DEBUG TaskRunnerFactory
> - Initialized TaskRunnerFactory[ActiveMQ BrokerService[localhost] Task]
> using ExecutorService: null
> 2014-09-01 13:25:52,098 [erSimpleAppMain] WARN LevelDBClient
> - DB operation failed. (entering recovery mode)
> 2014-09-01 13:25:52,099 [erSimpleAppMain] DEBUG LevelDBClient
> - java.lang.NullPointerException
> java.lang.NullPointerException
> at
> org.apache.activemq.leveldb.LevelDBClient$$anonfun$queueCursor$1.apply(LevelDBClient.scala:966)
> at
> org.apache.activemq.leveldb.LevelDBClient$$anonfun$queueCursor$1.apply(LevelDBClient.scala:962)
> at
> org.apache.activemq.leveldb.LevelDBClient$$anonfun$collectionCursor$1$$anonfun$apply$mcV$sp$9.apply(LevelDBClient.scala:1038)
> at
> org.apache.activemq.leveldb.LevelDBClient$$anonfun$collectionCursor$1$$anonfun$apply$mcV$sp$9.apply(LevelDBClient.scala:1037)
> at
> org.apache.activemq.leveldb.LevelDBClient$RichDB.check$4(LevelDBClient.scala:309)
> at
> org.apache.activemq.leveldb.LevelDBClient$RichDB.cursorRange(LevelDBClient.scala:311)
> at
> org.apache.activemq.leveldb.LevelDBClient$$anonfun$collectionCursor$1.apply$mcV$sp(LevelDBClient.scala:1037)
> at
> org.apache.activemq.leveldb.LevelDBClient$$anonfun$collectionCursor$1.apply(LevelDBClient.scala:1037)
> at
> org.apache.activemq.leveldb.LevelDBClient$$anonfun$collectionCursor$1.apply(LevelDBClient.scala:1037)
> at
> org.apache.activemq.leveldb.LevelDBClient.usingIndex(LevelDBClient.scala:760)
> at
> org.apache.activemq.leveldb.LevelDBClient$$anonfun$retryUsingIndex$1.apply(LevelDBClient.scala:766)
> at
> org.apache.activemq.leveldb.util.RetrySupport$.retry(RetrySupport.scala:38)
> at
> org.apache.activemq.leveldb.LevelDBClient.retry(LevelDBClient.scala:457)
> at
> org.apache.activemq.leveldb.LevelDBClient.retryUsingIndex(LevelDBClient.scala:766)
> at
> org.apache.activemq.leveldb.LevelDBClient.collectionCursor(LevelDBClient.scala:1036)
> at
> org.apache.activemq.leveldb.LevelDBClient.queueCursor(LevelDBClient.scala:962)
> at
> org.apache.activemq.leveldb.DBManager.cursorMessages(DBManager.scala:633)
> at
> org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore.recoverNextMessages(LevelDBStore.scala:643)
> at org.apache.activemq.broker.region.Queue.initialize(Queue.java:381)
> at
> org.apache.activemq.broker.region.DestinationFactoryImpl.createDestination(DestinationFactoryImpl.java:87)
> at
> org.apache.activemq.broker.region.AbstractRegion.createDestination(AbstractRegion.java:526)
> at
> org.apache.activemq.broker.jmx.ManagedQueueRegion.createDestination(ManagedQueueRegion.java:56)
> at
> org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:136)
> at
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:277)
> at
> org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:145)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)