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