[
https://issues.apache.org/jira/browse/CASSANDRA-11848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15299052#comment-15299052
]
Paulo Motta commented on CASSANDRA-11848:
-----------------------------------------
Updated {{RangeStreamer}} to ignore insufficient sources for keyspaces with
RF=1 only when {{-Dcassandra.consistent.rangemovement=false}} and instead log
the following warning for each missing range:
{{WARN 2016-05-24 18:52:39,431 RangeStreamer.java:308 - Unable to find
sufficient sources for streaming range
(-6995524237582729504,-6946419755126646166] in keyspace keyspace1 with RF=1.
Keyspace might be missing data.}}
Since {{replace_address}} already considers
{{cassandra.consistent.rangemovement=false}}, the tests no longer fail due to
{{auth_keyspace}} having {{rf=1}} but log warnings instead.
Also added new bootstrap tests to check that normal bootstrap should fail when
there is a down replica and a keyspace with {{rf=1}} and
{{-Dcassandra.consistent.rangemovement=true}}, and should succeed and log a
warning when {{-Dcassandra.consistent.rangemovement=false}}.
I also added another related dtest to check that in a multi-dc environment with
replication {{\{'class': 'NetworkTopologyStrategy', 'dc1': 1, 'dc2': 1\}}} a
replace_address of a node in DC2 correctly replicates data from DC1 without
logging warnings (since data is present on other DC).
Branches above updated and tests resubmitted (running now). Will set to patch
available when they are finished and look good.
> replace address can "succeed" without actually streaming anything
> -----------------------------------------------------------------
>
> Key: CASSANDRA-11848
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11848
> Project: Cassandra
> Issue Type: Bug
> Components: Streaming and Messaging
> Reporter: Jeremiah Jordan
> Assignee: Paulo Motta
> Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x
>
>
> When you do a replace address and the new node has the same IP as the node it
> is replacing, then the following check can let the replace be successful even
> if we think all the other nodes are down:
> https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/dht/RangeStreamer.java#L271
> As the FailureDetectorSourceFilter will exclude the other nodes, so an empty
> stream plan gets executed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)