[
https://issues.apache.org/jira/browse/CASSANDRA-3577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis updated CASSANDRA-3577:
--------------------------------------
Affects Version/s: 1.0.3
Fix Version/s: 1.0.6
This can actually cause the more subtle problem of CASSANDRA-3585: Node A (DC1)
sends a write to node B (DC2), which forwards to node C (DC2). Node C replies
to node A with the message ID it received from node B. If the message
generation on A and B is far enough apart, then A will not have a callback for
the reply and all you will see happen is the write timeout (at CL > ONE). But
if A *does* have a callback (for a different operation) waiting, then A will
try to apply the mutation response to that callback, which (if the callback is
for a read) will result in the error see in that ticket.
> TimeoutException When using QuorumEach or ALL consistency on Multi-DC
> ---------------------------------------------------------------------
>
> Key: CASSANDRA-3577
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3577
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.8.8, 1.0.3
> Environment: JVM
> Reporter: Vijay
> Assignee: Vijay
> Fix For: 0.8.9, 1.0.6, 1.1
>
> Attachments: 0001-Mutation-Optimization-for-MultiDC-v2.patch,
> 0001-Mutation-Optimization-for-MultiDC.patch,
> 0001-removing-mutation-MultiDC-optimization.patch, 3577-v3.txt, 3577.txt
>
>
> Currently we have
> 1) StorageProxy.sendMessages() sending messages to the first node in the
> other DC...
> 2) A node in the other DC will remove the ForwardHeader and sendRR (Adding a
> MessageID to the Queue).
> 3) The receiving node receives the mutation, updates and sends the response
> to the Original Co-ordinator.
> 4) Co-Ordinator now checks for the MessageID (which it never had)
> All the Quorum_Each updates fail in the co-ordinator, this issue started
> showing up after CASSANDRA-3472 the code was introduced in CASSANDRA-2138 .
> Simple Fix is to remove the optimization in 0.8 and fix it in 1.x because it
> seems to me like it needs a change to the Message service version.
> Possible Solution: We might want send the message ID's to be used by the all
> the nodes in other DC (Which is currently generated by the node which
> receives the Forward request see: (2) ).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira