Kurt Greaves commented on CASSANDRA-12296:

Don't insert your foot there too soon. Bootstrap is fine however you still get 
an incorrect error message if you try and rebuild from the same DC using NTS 
from a DC that doesn't contain the keyspace. When I was testing this case 
apparently the error got masked by another keyspace which makes me think there 
may be another bug here (details for which are below) i.e:
 keyspace_name      | durable_writes | replication
               test |           True |       {'class': 
'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc1': '1'}

ccm node2 nodetool rebuild test dc2
 nodetool: Unable to find sufficient sources for streaming range 
(-1977532406384460074,-1976661853362798275] in keyspace test with RF=1. 
Consider using NetworkTopologyStrategy for this keyspace.

In this case, node2 is in dc1, and although test isn't replicated to dc2 it 
still gets to that error message.

I suppose alternatives could be:
1. Make the error more generic (e.g: 'Ensure this keyspace has replicas in the 
source datacentre')
2. Catch this case separately and warn that you can't rebuild from a DC that 
has no replicas.

Something more generic is probably OK and with a bit of thought the user should 
come to a conclusion on how to deal with the issue like increase RF or change 
to NTS - As long as we can be sure this only occurs from rebuilds. I can't see 
any path that leads to here from anywhere other than a rebuild however I 
haven't completely ruled out bootstrap yet.

What do you think [~jjirsa]?

> system_auth can't be rebuilt by default
> ---------------------------------------
>                 Key: CASSANDRA-12296
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12296
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Jim Witschey
>            Priority: Minor
>              Labels: lhf
>         Attachments: 12296.patch
> This came up in discussion of CASSANDRA-11687. {{nodetool rebuild}} was 
> failing in a dtest. [~pauloricardomg] explained:
> bq. before [CASSANDRA-11848] the local node could be considered a source, 
> while now sources are restricted only to dc2, so since {{system_auth}} uses 
> {{SimpleStrategy}} depending on the token arrangement there could or not be 
> sources from dc2. Fix is to either use 
> {{-Dcassandra.consistent.rangemovement=false}} or update {{system_auth}} to 
> use {{NetworkTopologyStrategy}} with 2 dcs..
> This is, at the very least, a UX bug. When {{rebuild}} fails, it fails with
> {code}
> nodetool: Unable to find sufficient sources for streaming range 
> (-3287869951390391138,-1624006824486474209] in keyspace system_auth with 
> RF=1.If you want to ignore this, consider using system property 
> -Dcassandra.consistent.rangemovement=false.
> {code}
> which suggests that a user should give up consistency guarantees when it's 
> not necessary.

This message was sent by Atlassian JIRA

Reply via email to