[ 
https://issues.apache.org/jira/browse/AMQ-6567?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher L. Shannon updated AMQ-6567:
----------------------------------------
    Fix Version/s: 5.14.4

> Broker failure when deleting files in gc can cause missing journal errors on 
> restart
> ------------------------------------------------------------------------------------
>
>                 Key: AMQ-6567
>                 URL: https://issues.apache.org/jira/browse/AMQ-6567
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: KahaDB
>    Affects Versions: 5.14.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.15.0, 5.14.4
>
>
> A broker stop or failure while deleting journal data files or archiving data 
> files can result in partial deletion and no index updates. 
> Leading to errors on restart of the form: 
> java.io.IOException: Detected missing journal files.
> {code}ERROR BrokerService                  - Failed to start Apache ActiveMQ 
> (localhost, null)
> java.io.IOException: Detected missing journal files. [1, 2, 3, 4]
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase.recoverIndex(MessageDatabase.java:978)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase$5.execute(MessageDatabase.java:714)
>       at 
> org.apache.activemq.store.kahadb.disk.page.Transaction.execute(Transaction.java:779)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase.recover(MessageDatabase.java:711)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase.open(MessageDatabase.java:464)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:483)
>       at 
> org.apache.activemq.store.kahadb.MessageDatabase.doStart(MessageDatabase.java:297)
>       at 
> org.apache.activemq.store.kahadb.KahaDBStore.doStart(KahaDBStore.java:218)
>       at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)
>       at 
> org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.doStart(KahaDBPersistenceAdapter.java:226)
>       at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)
>       at 
> org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java:674)
>       at 
> org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java:658)
>       at 
> org.apache.activemq.broker.BrokerService.start(BrokerService.java:622){code}
> The file deletion of the gc candidates is part of the index transaction, so 
> partial deletion can occur but the index does not get updated.
> For gc, the index updates need to complete to remove references to the data 
> files first. Only after a successful update to the index should the removal 
> proceed. If the removal fails, on restart the orphaned data files will get gc 
> ed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to