activemq-dev mailing list archives

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

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

Thomas Riccardi updated AMQCPP-393:
-----------------------------------

    Attachment: activemq.log.gz

activemq.log in TRACE mode

Minor difference with described scenario:
There is a java consumer on "DLQ" that redispatches the messages to a "DLQ.reply" queue.
                
> 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
>         Attachments: activemq.log.gz
>
>
> 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