You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Gábor Auth (JIRA)" <ji...@apache.org> on 2016/07/19 19:57:20 UTC

[jira] [Created] (CASSANDRA-12240) Broken materialized view compatibility

Gábor Auth created CASSANDRA-12240:
--------------------------------------

             Summary: Broken materialized view compatibility
                 Key: CASSANDRA-12240
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12240
             Project: Cassandra
          Issue Type: Bug
         Environment: datastax-ddc-3.7.0, Centos 7, x86_64
            Reporter: Gábor Auth
            Priority: Blocker


The behavior of the materialized view is not compatible with the previous versions of Cassandra, here is the simple test case, it is works from 3.3.0 to 3.6.0. I've reproduced the issue with a single node installation and our eight node test environment too of the 3.7.0 version:
{code}
CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};
USE test;

CREATE TABLE test (id timeuuid PRIMARY KEY, segment text, xy text);
CREATE MATERIALIZED VIEW test_by_segment AS SELECT * FROM test WHERE segment IS NOT NULL PRIMARY KEY (segment, id);
CREATE MATERIALIZED VIEW test_by_xy AS SELECT * FROM test WHERE xy IS NOT NULL PRIMARY KEY (xy, id);

UPDATE test SET segment=null, xy='{"x":0,"y":0}' WHERE id=8868dd90-fa48-11e3-afc8-c53da2f1a8ef;
UPDATE test SET xy='{"x":0,"y":0}' WHERE id=8868dd90-fa48-11e3-afc8-c53da2f1a8ef;
{code}

The result of the `cqlsh` console:
{code}
WriteTimeout: code=1100 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'}
{code}

The stack trace in the server log:
{code}
ERROR 19:40:19 Unknown exception caught while attempting to update MaterializedView! test
java.lang.AssertionError: We shouldn't have got there is the base row had no associated entry
        at org.apache.cassandra.db.view.ViewUpdateGenerator.computeLivenessInfoForEntry(ViewUpdateGenerator.java:455) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.ViewUpdateGenerator.updateEntry(ViewUpdateGenerator.java:273) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.ViewUpdateGenerator.addBaseTableUpdate(ViewUpdateGenerator.java:127) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.TableViews.addToViewUpdateGenerators(TableViews.java:403) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.TableViews.generateViewUpdates(TableViews.java:236) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.TableViews.pushViewReplicaUpdates(TableViews.java:140) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:514) [apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:399) [apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Mutation.applyFuture(Mutation.java:202) [apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Mutation.apply(Mutation.java:214) [apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Mutation.apply(Mutation.java:228) [apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.service.StorageProxy$8.runMayThrow(StorageProxy.java:1343) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2519) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_91]
        at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:136) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_91]
WARN  19:40:19 Uncaught exception on thread Thread[SharedPool-Worker-2,5,main]: {}
java.lang.AssertionError: We shouldn't have got there is the base row had no associated entry
        at org.apache.cassandra.db.view.ViewUpdateGenerator.computeLivenessInfoForEntry(ViewUpdateGenerator.java:455) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.ViewUpdateGenerator.updateEntry(ViewUpdateGenerator.java:273) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.ViewUpdateGenerator.addBaseTableUpdate(ViewUpdateGenerator.java:127) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.TableViews.addToViewUpdateGenerators(TableViews.java:403) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.TableViews.generateViewUpdates(TableViews.java:236) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.view.TableViews.pushViewReplicaUpdates(TableViews.java:140) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:514) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:399) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Mutation.applyFuture(Mutation.java:202) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Mutation.apply(Mutation.java:214) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.db.Mutation.apply(Mutation.java:228) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.service.StorageProxy$8.runMayThrow(StorageProxy.java:1343) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2519) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_91]
        at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164) ~[apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:136) [apache-cassandra-3.7.0.jar:3.7.0]
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-3.7.0.jar:3.7.0]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
{code}



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