activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARTEMIS-1353) Replication packets can get out of order
Date Tue, 26 Sep 2017 18:49:01 GMT

    [ https://issues.apache.org/jira/browse/ARTEMIS-1353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16181310#comment-16181310
] 

ASF subversion and git services commented on ARTEMIS-1353:
----------------------------------------------------------

Commit 492b55e09affb03a943c3516a5a3bf513024ca8b in activemq-artemis's branch refs/heads/1.x
from Clebert Suconic
[ https://git-wip-us.apache.org/repos/asf?p=activemq-artemis.git;h=492b55e ]

ARTEMIS-1353 Initial replication of large messages out of executor

This is based on the work @jbertram made at the github pr #1466 and the discussions we had
there

(cherry picked from commit ce6942a9aa9375efaa449424fe89de2db3f22e36)


> Replication packets can get out of order
> ----------------------------------------
>
>                 Key: ARTEMIS-1353
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1353
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.2.0
>            Reporter: Justin Bertram
>            Assignee: Justin Bertram
>             Fix For: 2.3.0
>
>
> {{ReplicationEndpoint}} my throw a {{NullPointerException}} during initial synchronization.
> The issue is caused by incorrect ordering of replication packets. The NPE arises when
{{ReplicationSyncFileMessage}} packets are sent before {{ReplicationStartSyncMessage}} packets.
> Incorrect ordering of replication packets may happen because of {{useExecutor}} parameter
in the {{sendReplicatePacket}} method. {{ReplicationStartSyncMessage}} packets are sent as
first, but they are sent with {{useExecutor=true}}. Although {{ReplicationSyncFileMessage}}
packets are sent after {{ReplicationStartSyncMessage}} packets, they are sent with {{useExecutor=false}}.
So sending of {{ReplicationStartSyncMessage}} packets is scheduled to executor and there is
no guarantee when the task will be executed, whereas {{ReplicationStartSyncMessage}} packets
are sent immediately.
> ReplicatedFailoverTest#testTimeoutOnFailover would fail in a loop because of this.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message