[ 
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)

Reply via email to