activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Riccardi (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AMQCPP-393) TimeToLive feature makes some messages disappear
Date Tue, 10 Apr 2012 09:29:18 GMT
TimeToLive feature makes some messages disappear
------------------------------------------------

                 Key: AMQCPP-393
                 URL: https://issues.apache.org/jira/browse/AMQCPP-393
             Project: ActiveMQ C++ Client
          Issue Type: Bug
          Components: CMS Impl
    Affects Versions: 3.4.0
         Environment: Ubuntu 10.04 x86_64, CMS 3.4.0, ActiveMQ 5.5.0 (and 5.6 SNAPSHOT of
2012-04-05)
            Reporter: Thomas Riccardi
            Assignee: Timothy Bish


The following setup is run in one machine:

ActiveMQ Broker 5.5.0, with:
{code:xml}
                  <deadLetterStrategy>
                    <sharedDeadLetterStrategy 
                        processExpired="true"
                        processNonPersistent="true"
                        />
                  </deadLetterStrategy>
{code}

Two C++ programs using CMS 3.4.0:
Program A produces messages to a "request" queue with a TTL of 1000ms.
Program B consumes messages from "request" queue with prefetch=0, process the messages, and
posts a reply in "reply" queue.

Program A sends 222 messages to the "request" queue.
Program B process a message in about 250ms.
Program B has the time to process 4 messages from "request", and post the 4 replies to "reply".
Then the broker moves to the "DLQ" queue the expired messages from the "request" queue.

Final state: "request" is empty, "reply" has 4 enqueued messages, and "DLQ" has 125 enqueued
messages.

*The bug*: the sum of messages counts from "DLQ" and "reply" is lower than the number of messages
initially enqueued in "request": there are 93 messages missing.

The messages are not lost by the Program B: with traces on the receive() loop we confirm that
it only got 4 messages.
{code}
      while (1)
      {
        cms::Message *message = _messageConsumer->receive();
        if (! message)
          continue;
        _messageListener->onMessage(message);
        delete message;
      }
{code}


The bug is reproducible, but the numbers vary. This happens less often if we increase the
TTL to 10s, and this never happens with no TTL (TTL=0, default).




--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message