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)