[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Josh McKenzie updated CASSANDRA-11803: -- Bug Category: Parent values: Availability(12983)Level 1 values: Cluster Crash(12993) > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: Feature/Materialized Views, Legacy/CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian >Priority: Normal > Fix For: 3.0.10, 3.10, 4.0 > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Josh McKenzie updated CASSANDRA-11803: -- Severity: Critical (was: Normal) > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: Feature/Materialized Views, Legacy/CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian >Priority: Urgent > Fix For: 3.0.10, 3.10, 4.0 > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) > [apache-cassandra-3.5.0.jar:3.5.0] > at >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Hanna updated CASSANDRA-11803: - Component/s: Materialized Views > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: CQL, Materialized Views > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian > Fix For: 3.0.10, 3.10, 4.0 > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) > [apache-cassandra-3.5.0.jar:3.5.0] > at >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian updated CASSANDRA-11803: --- Resolution: Fixed Status: Resolved (was: Patch Available) Thanks for the quick review, [~ifesdjeen]. Removed the bad keywords and added a test to ensure all words in the ReservedKeywords list do not parse in [bc9a079|https://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=commit;h=bc9a0793944f7dd481646c4014d13b844439906c]. > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian > Fix For: 3.0.10, 3.10, 4.0 > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian updated CASSANDRA-11803: --- Status: Patch Available (was: Reopened) It looks like {{COUNT}}, {{WRITETIME}}, {{TTL}}, and {{KEY}}, and the CQL types, should not be in the reserved keyword list: https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/cql3/Cql.g#L1578:L1633 I initially just used the {{basic_unreserved_keywords}} to determine the keywords, so I've removed others which should not have been included: https://github.com/carlyeks/cassandra/commit/ee76a10c75cc859ba178a7ec321b98aee2c0939a > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian > Fix For: 3.0.10, 3.10, 4.0 > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian updated CASSANDRA-11803: --- Fix Version/s: (was: 3.0.x) 4.0 3.10 3.0.10 > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian > Fix For: 3.0.10, 3.10, 4.0 > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) > [apache-cassandra-3.5.0.jar:3.5.0] > at >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian updated CASSANDRA-11803: --- Resolution: Fixed Status: Resolved (was: Ready to Commit) Thanks for the review [~ifesdjeen]. Committed as [153583b|https://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=commit;h=153583be55e2a0bba74102bf1d5fc7a79d314b1f]. > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian > Fix For: 3.0.x > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alex Petrov updated CASSANDRA-11803: Status: Ready to Commit (was: Patch Available) > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian > Fix For: 3.0.x > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) > [apache-cassandra-3.5.0.jar:3.5.0] > at >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-11803: Reviewer: Alex Petrov > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian > Fix For: 3.0.x > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) > [apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:551) >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian updated CASSANDRA-11803: --- Fix Version/s: (was: 3.x) 3.0.x Reproduced In: 3.0.0 (was: 3.3, 3.5) Status: Patch Available (was: Open) I've posted a branch which adds a list of reserved words and will also quote if it is a reserved word. If this approach looks OK, I'll add a test for it. ||3.0|[branch|https://github.com/carlyeks/cassandra/tree/ticket/11803/3.0]|[utest|http://cassci.datastax.com/job/carlyeks-ticket-11803-3.0-testall/]|[dtest|http://cassci.datastax.com/job/carlyeks-ticket-11803-3.0-dtest/]| > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac >Assignee: Carl Yeksigian > Fix For: 3.0.x > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-11803: Fix Version/s: 3.x > Creating a materialized view on a table with "token" column breaks the cluster > -- > > Key: CASSANDRA-11803 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11803 > Project: Cassandra > Issue Type: Bug > Components: CQL > Environment: Kernel: > Linux 4.4.8-20.46.amzn1.x86_64 > Java: > Java OpenJDK Runtime Environment (build 1.8.0_91-b14) > OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode) > Cassandra: > datastax-ddc-3.3.0-1.noarch > datastax-ddc-tools-3.3.0-1.noarch >Reporter: Victor Trac > Fix For: 3.x > > > On a new Cassandra cluster, if we create a table with a field called "token" > (with quotes) and then create a materialized view that uses "token", the > cluster breaks. A ServerError is returned, and no further nodetool operations > on the sstables work. Restarting the Cassandra server will also fail. It > seems like the entire cluster is hosed. > We tried this on Cassandra 3.3 and 3.5. > Here's how to produce (on an new, empty cassandra 3.5 docker container): > {code} > [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor' : 1 }; > cqlsh> CREATE TABLE account.session ( >... "token" blob, >... account_id uuid, >... PRIMARY KEY("token") >... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND >... compression={'sstable_compression': 'LZ4Compressor'}; > cqlsh> CREATE MATERIALIZED VIEW account.account_session AS >...SELECT account_id,"token" FROM account.session >...WHERE "token" IS NOT NULL and account_id IS NOT NULL >...PRIMARY KEY (account_id, "token"); > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > cqlsh> drop table account.session; > ServerError: message="java.lang.RuntimeException: java.util.concurrent.ExecutionException: > org.apache.cassandra.exceptions.SyntaxException: line 1:25 no viable > alternative at input 'FROM' (SELECT account_id, token [FROM]...)"> > {code} > When any sstable*, nodetool, or when the Cassandra process is restarted, this > is emitted on startup and Cassandra exits (copied from a server w/ data): > {code} > INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - > Initializing system_schema.indexes > DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - > Opening > /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big > (91 bytes) > ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception > encountered during startup > org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable > alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) > at > org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) > ~[apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) > [apache-cassandra-3.5.0.jar:3.5.0] > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:551) > [apache-cassandra-3.5.0.jar:3.5.0] > at >
[jira] [Updated] (CASSANDRA-11803) Creating a materialized view on a table with "token" column breaks the cluster
[ https://issues.apache.org/jira/browse/CASSANDRA-11803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Victor Trac updated CASSANDRA-11803: Description: On a new Cassandra cluster, if we create a table with a field called "token" (with quotes) and then create a materialized view that uses "token", the cluster breaks. A ServerError is returned, and no further nodetool operations on the sstables work. Restarting the Cassandra server will also fail. It seems like the entire cluster is hosed. We tried this on Cassandra 3.3 and 3.5. Here's how to produce (on an new, empty cassandra 3.5 docker container): {code} [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] Use HELP for help. cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }; cqlsh> CREATE TABLE account.session ( ... "token" blob, ... account_id uuid, ... PRIMARY KEY("token") ... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND ... compression={'sstable_compression': 'LZ4Compressor'}; cqlsh> CREATE MATERIALIZED VIEW account.account_session AS ...SELECT account_id,"token" FROM account.session ...WHERE "token" IS NOT NULL and account_id IS NOT NULL ...PRIMARY KEY (account_id, "token"); ServerError: cqlsh> drop table account.session; ServerError: {code} When any sstable*, nodetool, or when the Cassandra process is restarted, this is emitted on startup and Cassandra exits (copied from a server w/ data): {code} INFO [main] 2016-05-12 23:25:30,074 ColumnFamilyStore.java:395 - Initializing system_schema.indexes DEBUG [SSTableBatchOpen:1] 2016-05-12 23:25:30,075 SSTableReader.java:480 - Opening /mnt/cassandra/data/system_schema/indexes-0feb57ac311f382fba6d9024d305702f/ma-4-big (91 bytes) ERROR [main] 2016-05-12 23:25:30,143 CassandraDaemon.java:697 - Exception encountered during startup org.apache.cassandra.exceptions.SyntaxException: line 1:59 no viable alternative at input 'FROM' (..., expire_at, last_used, token [FROM]...) at org.apache.cassandra.cql3.ErrorCollector.throwFirstSyntaxError(ErrorCollector.java:101) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:80) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:512) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.schema.SchemaKeyspace.fetchView(SchemaKeyspace.java:1128) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.schema.SchemaKeyspace.fetchViews(SchemaKeyspace.java:1092) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspace(SchemaKeyspace.java:903) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:879) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) ~[apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) [apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:551) [apache-cassandra-3.5.0.jar:3.5.0] at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:680) [apache-cassandra-3.5.0.jar:3.5.0] {code} was: On a new Cassandra cluster, if we create a table with a field called "token" (with quotes) and then create a materialized view that users token, the cluster breaks. A ServerError is returned, and no further nodetool operations on the sstables work. Restarting the Cassandra server will also fail. It seems like the entire cluster is hosed. We tried this on Cassandra 3.3 and 3.5. Here's how to produce (on an new, empty cassandra 3.5 docker container): {code} [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] Use HELP for help. cqlsh> CREATE KEYSPACE account WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }; cqlsh> CREATE TABLE account.session ( ... "token" blob, ... account_id uuid, ... PRIMARY KEY("token") ... )WITH compaction={'class': 'LeveledCompactionStrategy'} AND ... compression={'sstable_compression': 'LZ4Compressor'}; cqlsh> CREATE MATERIALIZED VIEW account.account_session AS ...SELECT account_id,"token" FROM account.session ...WHERE "token" IS NOT NULL and account_id IS NOT NULL ...PRIMARY KEY (account_id, "token"); ServerError: cqlsh> drop