Failover with async rollback of message audit can lead to over eager duplicate
suppression (auto acking) and apparent missing messages
--------------------------------------------------------------------------------------------------------------------------------------
Key: AMQ-2573
URL: https://issues.apache.org/activemq/browse/AMQ-2573
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.3.0
Reporter: Gary Tully
Assignee: Gary Tully
Fix For: 5.4.0
with multiple unordered message consumers on a connection and failover with
default prefetch recovery processing can lead to incorrect duplicate detection.
Duplicates are expected as all unacked messages will be redelivered on
recovery. An active consumer may have unconsumed messages which need to be
rolled back in the message audit. currently this rollback is occurring at an
indeterminate time w.r.t to future dispatch.
given consumer 1 has unconsumed messages 0-10, consumer 2 11-20 etc.. all need
to be rolled back prior to recovery of consumer 3 which may get an message in
the range 0 - 20 delivered to it. Currently, rollbacks are done on the next
delivery.
All audit rollbacks need to be complete before any new delivery occurs on a
recovered connection.
The result of over eager duplicate suppression is missing messages as the
duplicates are auto acked.
Symptom: with debug logging on
{code}log4j.logger.org.apache.activemq.ActiveMQMessageConsumer=DEBUG{code} it
is possible to catch the duplicate suppression. If your missing messages are in
this set, you may have this problem.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.