activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergiy Barlabanov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AMQ-5542) KahaDB data files containing acknowledgements are deleted during cleanup
Date Tue, 27 Jan 2015 20:40:34 GMT
Sergiy Barlabanov created AMQ-5542:
--------------------------------------

             Summary: KahaDB data files containing acknowledgements are deleted during cleanup
                 Key: AMQ-5542
                 URL: https://issues.apache.org/jira/browse/AMQ-5542
             Project: ActiveMQ
          Issue Type: Bug
          Components: Message Store
    Affects Versions: 5.10.1, 5.10.0
            Reporter: Sergiy Barlabanov


AMQ-2832 was not fixed cleanly.
The commit dd68c61e65f24b7dc498b36e34960a4bc46ded4b by Gary from 8.10.2010 introduced a problem
by deleting too many files.

Scenarios we are facing currently in production:
Data file #1 contains unconsumed messages sitting in a DLQ. So this file is not a cleanup
candidate.
The next file #2 contains acks of some messages from file #1. This file is not a cleanup candidate
(because of ackMessageFileMap logic).
The next file #3 contains acks of some messages from file #2. And this file is deleted during
the cleanup procedure. So on Broker restart all messages from #2, whose acks were from the
deleted file #3, are replayed!
The reason is gcCandidates variable, which is a copy of gcCandidateSet (see MessageDatabase#checkpointUpdate
at the end of the method - org/apache/activemq/store/kahadb/MessageDatabase.java:1659 on 5.10.0
tag). So when a candidate is deleted from gcCandidateSet (org/apache/activemq/store/kahadb/MessageDatabase.java:1668
on 5.10.0 tag), gcCandidates still contains that candidate and the comparison on org/apache/activemq/store/kahadb/MessageDatabase.java:1666
works wrong!
I will try to adjust AMQ2832Test.



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

Mime
View raw message