[
https://issues.apache.org/jira/browse/AMQ-5703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Tully resolved AMQ-5703.
-----------------------------
Resolution: Fixed
fix and test in http://git-wip-us.apache.org/repos/asf/activemq/commit/a7178a46
> kahadb - index recovery - corrupt journal records cannot be skipped
> -------------------------------------------------------------------
>
> Key: AMQ-5703
> URL: https://issues.apache.org/jira/browse/AMQ-5703
> Project: ActiveMQ
> Issue Type: Bug
> Components: KahaDB, Message Store
> Affects Versions: 5.11.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Labels: kahadb, recovery
> Fix For: 5.12.0
>
>
> Working with some corrupt data stores - if corruption occurs in the middle of
> a journal and the index needs to be rebuilt we get:{code}java.io.EOFException
> at java.io.RandomAccessFile.readFully(RandomAccessFile.java:446)
> at java.io.RandomAccessFile.readFully(RandomAccessFile.java:424)
> at
> org.apache.activemq.util.RecoverableRandomAccessFile.readFully(RecoverableRandomAccessFile.java:75)
> at
> org.apache.activemq.store.kahadb.disk.journal.DataFileAccessor.readRecord(DataFileAccessor.java:87)
> at
> org.apache.activemq.store.kahadb.disk.journal.Journal.read(Journal.java:641)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:1014)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.recover(MessageDatabase.java:606)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.open(MessageDatabase.java:400)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:418)
> at
> org.apache.activemq.store.kahadb.MessageDatabase.doStart(MessageDatabase.java:262)
> at
> org.apache.activemq.store.kahadb.KahaDBStore.doStart(KahaDBStore.java:206)
> at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)
> at
> org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.doStart(KahaDBPersistenceAdapter.java:223)
> at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)
> at
> org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java:652)
> at
> org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java:641)
> at
> org.apache.activemq.broker.BrokerService.start(BrokerService.java:606){code}
> attempting to read an invalid location. This stops further recovery and the
> entire journal needs to be removed to progress.
> We have already identified the corrupt record, we just need to skip it when
> we replay.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)