You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Martin Lichtin (Jira)" <ji...@apache.org> on 2021/01/27 21:06:01 UTC
[jira] [Comment Edited] (AMQ-7298) failover duplicate detection in
error with batched local transactions
[ https://issues.apache.org/jira/browse/AMQ-7298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17273141#comment-17273141 ]
Martin Lichtin edited comment on AMQ-7298 at 1/27/21, 9:05 PM:
---------------------------------------------------------------
I assume with this change now having merged into 5.16.x, I'm seeing a regression when upgrading from 5.15.14.
Server-side redeliveries triggered by the redeliveryPlugin or no longer coming thru, but are (incorrectly) suppressed.
The output from my test with 5.16.1 shows this:
{noformat}
RedeliveryPlugin 175 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | redelivery #1 of: ID:mlipc2-4159-1611768583683-1:15:1:1:41 with delay: 1000, dest: queue://TEST2.msgin
ActiveMQMessageConsumer 1485 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | ID:mlipc2-4159-1611768583683-1:16:1:1 suppressing duplicate delivery on connection, poison acking: MessageDispatch {commandId = 0, responseRequired = false, consumerId = ID:mlipc2-4159-1611768583683-1:16:1:1, destination = queue://TEST2.msgin, message = ActiveMQTextMessage {commandId = 125, responseRequired = true, messageId = ID:mlipc2-4159-1611768583683-1:15:1:1:41, originalDestination = null, originalTransactionId = null, producerId = ID:mlipc2-4159-1611768583683-1:15:1:1, destination = queue://TEST2.msgin, transactionId = null, expiration = 0, timestamp = 1611768605501, arrival = 0, brokerInTime = 1611768607001, brokerOutTime = 1611768607012, correlationId = null, replyTo = null, persistent = true, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@5f105a66, marshalledProperties = org.apache.activemq.util.ByteSequence@5b2fd55c, dataStructure = null, redeliveryCounter = 1, size = 0, properties = {redeliveryDelay=1000, scheduledJobId=ID:mlipc2-4159-1611768583683-1:15:1:1:2}, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = XXX}, redeliveryCounter = 1}
{noformat}
was (Author: lichtin):
I assume with this change now having merged into 5.16.x, I'm seeing a regression when upgrading from 5.15.14.
Server-side redeliveries triggered by the redeliveryPlugin or no longer coming thru, but are (incorrectly) suppressed.
The output from my test with 5.16.1 shows this:
{noformat}
RedeliveryPlugin 175 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | redelivery #1 of: ID:mlipc2-4159-1611768583683-1:15:1:1:41 with delay: 1000, dest: queue://TEST2.msgin
ActiveMQMessageConsumer 1485 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | ID:mlipc2-4159-1611768583683-1:16:1:1 suppressing duplicate delivery on connection, poison acking: MessageDispatch {commandId = 0, responseRequired = false, consumerId = ID:mlipc2-4159-1611768583683-1:16:1:1, destination = queue://TEST2.msgin, message = ActiveMQTextMessage {commandId = 125, responseRequired = true, messageId = ID:mlipc2-4159-1611768583683-1:15:1:1:41, originalDestination = null, originalTransactionId = null, producerId = ID:mlipc2-4159-1611768583683-1:15:1:1, destination = queue://TEST2.msgin, transactionId = null, expiration = 0, timestamp = 1611768605501, arrival = 0, brokerInTime = 1611768607001, brokerOutTime = 1611768607012, correlationId = null, replyTo = null, persistent = true, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@5f105a66, marshalledProperties = org.apache.activemq.util.ByteSequence@5b2fd55c, dataStructure = null, redeliveryCounter = 1, size = 0, properties = {redeliveryDelay=1000, scheduledJobId=ID:mlipc2-4159-1611768583683-1:15:1:1:2}, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = XXX}, redeliveryCounter = 1}
{noformat}
> failover duplicate detection in error with batched local transactions
> ---------------------------------------------------------------------
>
> Key: AMQ-7298
> URL: https://issues.apache.org/jira/browse/AMQ-7298
> Project: ActiveMQ
> Issue Type: Bug
> Components: JMS client
> Affects Versions: 5.15.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Priority: Major
> Fix For: 5.16.0
>
>
> Messages can get poisonAcked in error as duplicate deliveries when a local transaction rollback during/after a failover (auto reconnect) event.
> The interaction between rollback and failover redelivery has a bunch of timing issues and did create duplicates in-error that resulted in over eager suppression.
> There are a bunch of related tests that validate expected behaviour, the related fixes needed to be revisited to better manage the delivered and unconsumed messages in the context of a local transaction and to avoid the real duplication of delivery in the client.
> There is an additional new test that demonstrates the additional dlq or duplicates behaviour.
> a nice cross section from the unit test suite is:
> mvn clean install -Dtest=CloseRollbackRedeliveryQueueTest,AMQ2149Test,JMSQueueRedeliverTest,RedeliveryPolicyTest,FailoverTransactionTest,FailoverDurableSubTransactionTest,JMSConsumerTest,JmsSessionRecoverTest,AMQ2751Test
--
This message was sent by Atlassian Jira
(v8.3.4#803005)