[ 
https://issues.apache.org/jira/browse/AMQ-6938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16464578#comment-16464578
 ] 

Tim Bain commented on AMQ-6938:
-------------------------------

[~gtully] So I guess the other question is whether the capability implied in 
the current name (i.e. the ability for KahaDB to ignore missing files, updating 
the existing index accordingly without requiring a full rebuild) should in fact 
be added to the current implementation. Does that seem like a feature we'd want 
to implement? And if so, would you want it done in the same story as the flag 
renaming and documentation update, or would you want a separate story for that 
enhancement?

> KahaDB's ignoreMissingJournalFiles argument doesn't actually ignore missing 
> journal files
> -----------------------------------------------------------------------------------------
>
>                 Key: AMQ-6938
>                 URL: https://issues.apache.org/jira/browse/AMQ-6938
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: KahaDB
>    Affects Versions: 5.13.1
>            Reporter: Tim Bain
>            Priority: Major
>
> It was reported on the user mailing list 
> ([http://activemq.2283324.n4.nabble.com/Re-failed-to-start-ActiveMQ-td4737631.html|http://activemq.2283324.n4.nabble.com/Re-failed-to-start-ActiveMQ-td4737631.html])
>  that a user is seeing the broker fail to start due to "java.io.IOException: 
> Could not locate data file /data/kahadb/db-531.log" even though 
> ignoreMissingJournalFiles is set to true. Presumably the purpose of that 
> option is to allow the broker to ignore missing journal files (otherwise we 
> chose poorly when naming the option and then failed to document it adequately 
> on the wiki), which means the option doesn't work properly in all situations.
> Looking at the code on master as of 3/25/2018, 
> org.apache.activemq.store.kahadb.MessageDatabase.recover() calls 
> journal.getNextLocation(null) on line 677, which will throw the exception in 
> question when DataFile.getDataFile() is called. This call to 
> journal.getNextLocation() occurs outside of the while loop, whereas the 
> ignoreMissingJournalFiles value is only checked in the catch block within the 
> while loop, so we do not consider the ignoreMissingJournalFiles value in the 
> call to getNextLocation(), even though missing journal files can cause 
> getNextLocation() to fail.
> Note that the file is missing because the user manually deleted it in an 
> effort to work around AMQ-6931, but that should not be relevant to the 
> behavior that's being seen.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to