You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Jesse Fugitt (JIRA)" <ji...@apache.org> on 2014/09/12 18:57:34 UTC

[jira] [Updated] (AMQ-5354) persistJMSRedelivered feature breaks the ability for KahaDB to compact its journal files

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

Jesse Fugitt updated AMQ-5354:
------------------------------
    Attachment: activemq.log

ActiveMQ TRACE log that illustrates the problem with attempting to gc KahaDB transaction log files when using the persistJMSRedelivered feature.

> persistJMSRedelivered feature breaks the ability for KahaDB to compact its journal files
> ----------------------------------------------------------------------------------------
>
>                 Key: AMQ-5354
>                 URL: https://issues.apache.org/jira/browse/AMQ-5354
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Message Store
>    Affects Versions: 5.10.0
>            Reporter: Jesse Fugitt
>            Priority: Critical
>         Attachments: activemq.log
>
>
> While doing testing with persistJMSRedelivered enabled in the ActiveMQ config file (which is new in 5.10), it became obvious that the KahaDB transaction log files are never being compacted even though all messages had been consumed.  This is very easy to reproduce using a standard config with the following policyEntry to enable the feature:
> <destinationPolicy>
>             <policyMap>
>               <policyEntries>
>                 <policyEntry queue=">" persistJMSRedelivered="true"></policyEntry>
> After waiting several minutes it was obvious the KahaDB transaction logs (~2500 files using 30GB of disk space) were not getting compacted and a log with DEBUG enabled (attached) shows that the files are getting filtered out as gc candidates.
> Since the updateMessage function is essentially doing a second "add message" operation down in KahaDB, it appears that the reference to the original message is not being cleaned up from the locationIndex preventing compaction of any message.  
> I will attach a patch that fixes the issue but this appears to be a pretty critical issue when using the persistJMSRedelivered feature.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)