[
https://issues.apache.org/jira/browse/ARTEMIS-465?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15223925#comment-15223925
]
ASF GitHub Bot commented on ARTEMIS-465:
----------------------------------------
GitHub user mtaylor opened a pull request:
https://github.com/apache/activemq-artemis/pull/437
ARTEMIS-465 Create LM on write packet in ReplicationEndpoint
If a LM write packet is received from the live assume that the large
message exists and create a local reference.
Old behavour would reject the packet which could lead to loss of data on
failover see JIRA.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/mtaylor/activemq-artemis ARTEMIS-465
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/activemq-artemis/pull/437.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #437
----
commit 0aa3f99ccec2fb28c22960b2db19a41ef359f0f5
Author: Martyn Taylor <[email protected]>
Date: 2016-04-01T22:13:04Z
ARTEMIS-465 Create LM on write packet in ReplicationEndpoint
If a LM write packet is received from the live assume that the large
message exists and create a local reference.
Old behavour would reject the packet which could lead to loss of data on
failover see JIRA.
----
> Large messages missed over replication
> --------------------------------------
>
> Key: ARTEMIS-465
> URL: https://issues.apache.org/jira/browse/ARTEMIS-465
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Reporter: Martyn Taylor
>
> The ReplicationEndpoint (in the backup) elies on the large message files sent
> over the cluster connection, to get an initial picture of the large messages
> on the live server. Subsequent large messages packets are forwarded to the
> ReplicationEndpoint. A large message being packet is sent when the journal
> first saves the large message pending packet, after this point the server
> forwards the large message continuation packets.
> The actual large message files are created lazily on the live server. Only
> when a large message continuation packet is received is the large message
> file created. This leaves a window where, before replication is started, a
> large message entry can be present in the journal (the large message begin
> has been received and store, but not forwarded to the backup, as it's not
> started) and no file is created on the live.
> If replication starts at this point, the backup builds up it's picture of the
> large messages based on the large message files, but is missing large
> messages from it's view (as they're in the journal on the live, but not
> stored in files). Subsequent large message continuation packets are then
> rejected by the backup as it does not recognise the large message.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)