You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Richard Low (JIRA)" <ji...@apache.org> on 2015/05/20 03:06:00 UTC

[jira] [Created] (CASSANDRA-9434) If a node loses schema_columns SSTables it could delete all secondary indexes from the schema

Richard Low created CASSANDRA-9434:
--------------------------------------

             Summary: If a node loses schema_columns SSTables it could delete all secondary indexes from the schema
                 Key: CASSANDRA-9434
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9434
             Project: Cassandra
          Issue Type: Bug
            Reporter: Richard Low


It is possible that a single bad node can delete all secondary indexes if it restarts and cannot read its schema_columns SSTables. Here's a reproduction:

* Create a 2 node cluster (we saw it on 2.0.11)
* Create the schema:

create keyspace myks with replication = {'class':'SimpleStrategy', 'replication_factor':1};
use myks;
create table mytable (a text, b text, c text, PRIMARY KEY (a, b) );
create index myindex on mytable(b);

NB index must be on clustering column to repro

* Kill one node
* Wipe its commitlog and system/schema_columns sstables.
* Start it again
* Run on this node

select index_name from system.schema_columns where keyspace_name = 'myks' and columnfamily_name = 'mytable' and column_name = 'b';

and you'll see the index is null.
* Run 'describe schema' on the other node. Sometimes it will not show the index, but you might need to bounce for it to disappear.

I think the culprit is SystemKeyspace.copyAllAliasesToColumnsProper.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)