[
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