[ 
https://issues.apache.org/jira/browse/CASSANDRA-12240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15392065#comment-15392065
 ] 

Bob Vawter commented on CASSANDRA-12240:
----------------------------------------

Ha, it seems in the time it took for me to hit this and produce a repro, the 
devs already have a patch.  Excellent.

> 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
>            Assignee: Sylvain Lebresne
>            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)

Reply via email to