[
https://issues.apache.org/jira/browse/ARTEMIS-4558?focusedWorklogId=898785&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-898785
]
ASF GitHub Bot logged work on ARTEMIS-4558:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 09/Jan/24 21:09
Start Date: 09/Jan/24 21:09
Worklog Time Spent: 10m
Work Description: clebertsuconic commented on code in PR #4734:
URL: https://github.com/apache/activemq-artemis/pull/4734#discussion_r1446614999
##########
artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/connect/mirror/AMQPMirrorControllerSource.java:
##########
@@ -213,15 +215,31 @@ public void deleteQueue(SimpleString address,
SimpleString queue) throws Excepti
if (deleteQueues) {
Message message = createMessage(address, queue, DELETE_QUEUE, null,
queue.toString());
- route(server, message);
+ routeMirrorCommand(server, message);
}
}
+ private boolean invalidTarget(MirrorController controller, Message message)
{
+ if (controller == null) {
+ return false;
+ }
+ String remoteID = getRemoteMirrorId();
+ if (remoteID == null) {
+ // This is to avoid a reflection from a small period of time one node
reconnects but not the opposite direction
+ remoteID =
String.valueOf(message.getAnnotation(BROKER_ID_SIMPLE_STRING));
+ logger.debug("Remote link is not initialized yet, setting remoteID
from message as {}", remoteID);
Review Comment:
In the short period span the remoteID could be null, and if the message has
no annotation, it would receive "null", and the check if the same ID would fail
as expected.
I could make it more intentional by checking though.
Issue Time Tracking
-------------------
Worklog Id: (was: 898785)
Time Spent: 1h 10m (was: 1h)
> AMQP Mirror ACKS should be idempotent
> -------------------------------------
>
> Key: ARTEMIS-4558
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4558
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Reporter: Clebert Suconic
> Assignee: Clebert Suconic
> Priority: Major
> Fix For: 2.32.0
>
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> When I first developed Mirroring, I assumed sending the mirrored ACK on a
> aferACK and disconnected from any other transactions would be enough, with
> the caveat you could get a duplicate delivery on the target mirror in case of
> failures.
> I got some complains that this is not safe enough from some users, and I'm
> making this now idempotent.
> I took an overal mirroring hardening approach and I'm improving test coverage
> for this improvement.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)