You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2013/04/15 20:18:17 UTC

[jira] [Resolved] (AMQ-4212) Broker may be unable to recover durable topic subscription from the kahadb journal

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

Timothy Bish resolved AMQ-4212.
-------------------------------

    Resolution: Fixed

fix and tests added to trunk.
                
> Broker may be unable to recover durable topic subscription from the kahadb journal
> ----------------------------------------------------------------------------------
>
>                 Key: AMQ-4212
>                 URL: https://issues.apache.org/jira/browse/AMQ-4212
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Message Store
>    Affects Versions: 5.7.0
>         Environment: kahadb and durable topic subscribers
>            Reporter: Torsten Mielke
>            Assignee: Timothy Bish
>             Fix For: 5.9.0
>
>         Attachments: AMQ4212Patch.txt, AMQ4212Test.java, AMQ4212Test.java, AMQ4212Test.java
>
>
> KahaDB is supposed to recover its index from the journal *completely*. 
> Such recovery can be enforced by stopping the broker, deleting the db.data index file and restarting the broker. 
> The recovery process may however not be able to recover inactive durable topic subscriptions. 
> This is because the kahadb cleanup task will not consider any active subscription entries in the journal files when marking journal files for deletion. 
> E.g. If a durable sub info was written to e.g. the journal file db-1.log but kahadb has already rolled over to writing to db-2.log, the cleanup task may delete db1.log (in case all msgs in db1.log got acked). The durable sub however is still alive. 
> When stopping the broker this durable sub info is still present in the index file and will be restored at broker restart.
> If however the index file gets deleted in order to enforce a recovery of the index from the journal, then the broker has lost the information about this durable sub.
> The broker is therefore not able to recover its state fully from the journal files.
> If the durable subscriber remains inactive (i.e. does not reconnect to broker immediately after broker restart), it may miss messages as the broker has no knowledge of this durable sub. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira