You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Iliya Grushevskiy (Jira)" <ji...@apache.org> on 2022/05/05 22:19:00 UTC

[jira] [Updated] (ARTEMIS-3815) Target mirror controller may commit received message after receiving ACK for it

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

Iliya Grushevskiy updated ARTEMIS-3815:
---------------------------------------
    Description: 
Given two brokers *A* and {*}B{*}, with configured mirror *A* towards *B* and a queue {*}Q{*}. If disk operations on *B* are slow, and there are active exchanges of messages on queue {*}Q{*}, for example:
 # Send message 1
 # ACK message 1
 # Send message 2
 # ACK message 2
 # ...

At the end queue *Q* on *B* will contain some unacknowledged messages, while queue *Q* on *A* will be empty.

The issue is that commit in sendMessage may take some time and ref to message will be written to the intermediate store only after receiving an ACK for this message.

  was:
Given two brokers *A* and {*}B{*}, with configured mirror *A* towards *B* and a queue {*}Q{*}. If disk operations on *B* are slow, and there are active exchanges of messages on queue {*}Q{*}, for example:
 # Send message 1
 # ACK message 1
 # Send message 2
 # ACK message 2
 # ...

At the end queue *Q* on *B* will contain some unacknowledged messages, while queue *Q* on *A* will be empty.

The issue is that commit in sendMessage may take some time and ref to message will be written to the intermediate store only after receiving an ACK for this message.

 

Test with synthetic delay: https://github.com/iliya-gr/activemq-artemis/tree/mirror-fast-ack


> Target mirror controller may commit received message after receiving ACK for it
> -------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-3815
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3815
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 2.19.1, 2.21.0, 2.22.0
>            Reporter: Iliya Grushevskiy
>            Priority: Major
>
> Given two brokers *A* and {*}B{*}, with configured mirror *A* towards *B* and a queue {*}Q{*}. If disk operations on *B* are slow, and there are active exchanges of messages on queue {*}Q{*}, for example:
>  # Send message 1
>  # ACK message 1
>  # Send message 2
>  # ACK message 2
>  # ...
> At the end queue *Q* on *B* will contain some unacknowledged messages, while queue *Q* on *A* will be empty.
> The issue is that commit in sendMessage may take some time and ref to message will be written to the intermediate store only after receiving an ACK for this message.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)