Could not locate data file
fgynnild Aug 17, 2011 2:33 PMHi everyone,
with the latest 5.5.0-00-43 of FuseMB I get an error
similar to this MB-873
when running stability tests (constantly producing and consuming messages).
Has anyone run into this issue?
2011-08-17 20:15:14,774 | ERROR | org.apache.activemq.broker.region.cursors.QueueStorePrefetch@444c742:TestQueue,batchResetNeeded=false,storeHasMessages=false,size=105596,cacheEnabled=false - Failed to fill batch | org.apache.activemq.broker.region.cursors.AbstractStoreCursor | Queue:TestQueue java.io.IOException: Could not locate data file C:\Program Files\MessagePumpTest\FuseMB\data\kahadb\db-682.log at org.apache.kahadb.journal.Journal.getDataFile(Journal.java:350) at org.apache.kahadb.journal.Journal.read(Journal.java:597) at org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:820) at org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:955) at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$5.execute(KahaDBStore.java:493) at org.apache.kahadb.page.Transaction.execute(Transaction.java:765) at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:482) 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:266) 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:1695) at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1912) at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1431) at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98) at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36) 2011-08-17 20:15:14,775 | ERROR | org.apache.activemq.broker.region.cursors.QueueStorePrefetch@444c742:TestQueue,batchResetNeeded=false,storeHasMessages=false,size=105596,cacheEnabled=false - Failed to fill batch | org.apache.activemq.broker.region.cursors.AbstractStoreCursor | Queue:TestQueue java.lang.RuntimeException: java.io.IOException: Could not locate data file C:\Program Files\MessagePumpTest\FuseMB\data\kahadb\db-682.log at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:269) 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:1695) at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1912) at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1431) at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98) at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36) Caused by: java.io.IOException: Could not locate data file C:\Program Files\MessagePumpTest\FuseMB\data\kahadb\db-682.log at org.apache.kahadb.journal.Journal.getDataFile(Journal.java:350) at org.apache.kahadb.journal.Journal.read(Journal.java:597) at org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:820) at org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:955) at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$5.execute(KahaDBStore.java:493) at org.apache.kahadb.page.Transaction.execute(Transaction.java:765) at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:482) 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:266) ... 7 more 2011-08-17 20:15:14,775 | ERROR | Failed to page in more queue messages | org.apache.activemq.broker.region.Queue | Queue:TestQueue java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Could not locate data file C:\Program Files\MessagePumpTest\FuseMB\data\kahadb\db-682.log at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:116) at org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:157) at org.apache.activemq.broker.region.Queue.doPageInForDispatch(Queue.java:1695) at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1912) at org.apache.activemq.broker.region.Queue.iterate(Queue.java:1431) at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98) at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36) Caused by: java.lang.RuntimeException: java.io.IOException: Could not locate data file C:\Program Files\MessagePumpTest\FuseMB\data\kahadb\db-682.log at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:269) at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:113) ... 6 more Caused by: java.io.IOException: Could not locate data file C:\Program Files\MessagePumpTest\FuseMB\data\kahadb\db-682.log at org.apache.kahadb.journal.Journal.getDataFile(Journal.java:350) at org.apache.kahadb.journal.Journal.read(Journal.java:597) at org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:820) at org.apache.activemq.store.kahadb.KahaDBStore.loadMessage(KahaDBStore.java:955) at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore$5.execute(KahaDBStore.java:493) at org.apache.kahadb.page.Transaction.execute(Transaction.java:765) at org.apache.activemq.store.kahadb.KahaDBStore$KahaDBMessageStore.recoverNextMessages(KahaDBStore.java:482) 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:266) ... 7 more 2011-08-17 20:15:14,780 | ERROR | Looking for key 682 but not found in fileMap: {687=db-687.log number = 687 , length = 33663821, 686=db-686.log number = 686 , length = 33672993, 685=db-685.log number = 685 , length = 33788068, 684=db-684.log number = 684 , length = 33726449, 683=db-683.log number = 683 , length = 33568210, 702=db-702.log number = 702 , length = 33647665, 703=db-703.log number = 703 , length = 33808723, 700=db-700.log number = 700 , length = 33644222, 701=db-701.log number = 701 , length = 33806891, 698=db-698.log number = 698 , length = 33601212, 699=db-699.log number = 699 , length = 33703938, 696=db-696.log number = 696 , length = 33810835, 697=db-697.log number = 697 , length = 33646169, 694=db-694.log number = 694 , length = 33817575, 695=db-695.log number = 695 , length = 33555466, 692=db-692.log number = 692 , length = 33585277, 693=db-693.log number = 693 , length = 33621574, 690=db-690.log number = 690 , length = 33671671, 691=db-691.log number = 691 , length = 33790940, 688=db-688.l
When trying to restart the message bus, I get this error:
2011-08-17 20:30:01,462 | INFO | KahaDB is version 3 | org.apache.activemq.store.kahadb.MessageDatabase | main 2011-08-17 20:30:01,534 | INFO | Recovering from the journal ... | org.apache.activemq.store.kahadb.MessageDatabase | main 2011-08-17 20:30:01,535 | INFO | Recovery replayed 1 operations from the journal in 0.049 seconds. | org.apache.activemq.store.kahadb.MessageDatabase | main 2011-08-17 20:30:01,876 | INFO | Some journal files are missing: [682] | org.apache.activemq.store.kahadb.MessageDatabase | main 2011-08-17 20:30:01,886 | ERROR | Failed to start ActiveMQ JMS Message Broker. Reason: java.io.IOException: Detected missing/corrupt journal files. 1 messages affected. | org.apache.activemq.broker.BrokerService | main java.io.IOException: Detected missing/corrupt journal files. 1 messages affected. at org.apache.activemq.store.kahadb.MessageDatabase.recoverIndex(MessageDatabase.java:660) at org.apache.activemq.store.kahadb.MessageDatabase$6.execute(MessageDatabase.java:479) at org.apache.kahadb.page.Transaction.execute(Transaction.java:765) at org.apache.activemq.store.kahadb.MessageDatabase.recover(MessageDatabase.java:477)
The only way to deal with this seem to be to delete the data store (and loose all messages).
Best regards,
Frank
Edited by: fgynnild on Aug 17, 2011 6:31 PM