Jesse Fugitt created AMQ-5354:
---------------------------------

             Summary: 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


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)

Reply via email to