[
https://issues.apache.org/jira/browse/AMQ-4943?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13852848#comment-13852848
]
Gary Tully commented on AMQ-4943:
---------------------------------
any indication of an earlier error? Guess it could be ages ago when that entry
was written or any time in between.
The exception indicates that the locator size value is < 4, which it should not
be or course.
> Corrupted KahaDB store: java.lang.NegativeArraySizeException
> ------------------------------------------------------------
>
> Key: AMQ-4943
> URL: https://issues.apache.org/jira/browse/AMQ-4943
> Project: ActiveMQ
> Issue Type: Bug
> Environment: activemq-5.5.1-fuse-10-16
> Reporter: Lionel Cons
> Priority: Critical
>
> One of our brokers went crazy and logged _many_ exceptions looking like this:
> 2013-12-19 12:27:09,007 [BrokerService[foobar] Task-13] ERROR
> AbstractStoreCursor -
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch@654e3615:Consumer.prod.whatever,batchResetNeeded=false,storeHasMessages=true,size=2461725,cacheEnabled=false,maxBatchSize:200
> - Failed to fill batch
> java.lang.RuntimeException: java.io.IOException: Invalid location: 43153:28,
> : java.lang.NegativeArraySizeException
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:277)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:110)
> at
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:157)
> at
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1746)
> at
> org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1962)
> at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1470)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: java.io.IOException: Invalid location: 43153:28, :
> java.lang.NegativeArraySizeException
> at
> org.apache.kahadb.journal.DataFileAccessor.readRecord(DataFileAccessor.java:94)
> at org.apache.kahadb.journal.Journal.read(Journal.java:601)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:908)
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1024)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$4.execute(KahaDBStore.java:552)
> at org.apache.kahadb.page.Transaction.execute(Transaction.java:771)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:541)
> at
> org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:88)
> at
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:97)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:274)
> ... 10 more
> 2013-12-19 12:27:09,007 [BrokerService[foobar] Task-13] ERROR Queue - Failed
> to page in more queue messages
> java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException:
> Invalid location: 43153:28, : java.lang.NegativeArraySizeException
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:113)
> at
> org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:157)
> at
> org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1746)
> at
> org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1962)
> at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1470)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.RuntimeException: java.io.IOException: Invalid location:
> 43153:28, : java.lang.NegativeArraySizeException
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:277)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:110)
> ... 9 more
> Caused by: java.io.IOException: Invalid location: 43153:28, :
> java.lang.NegativeArraySizeException
> at
> org.apache.kahadb.journal.DataFileAccessor.readRecord(DataFileAccessor.java:94)
> at org.apache.kahadb.journal.Journal.read(Journal.java:601)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:908)
> at
> org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:1024)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$4.execute(KahaDBStore.java:552)
> at org.apache.kahadb.page.Transaction.execute(Transaction.java:771)
> at
> org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:541)
> at
> org.apache.activemq.store.ProxyMessageStore.recoverNextMessages(ProxyMessageStore.java:88)
> at
> org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:97)
> at
> org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:274)
> A restart did not hep, the KahaDB stores is corrupted :-(
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)