You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Tom van der Woerdt (JIRA)" <ji...@apache.org> on 2016/07/21 08:37:20 UTC

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

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

Tom van der Woerdt edited comment on CASSANDRA-12240 at 7/21/16 8:36 AM:
-------------------------------------------------------------------------

This seems to also affect 3.0.7+

While joining a new node, I got several stream failures like this :
{code}
ERROR [StreamReceiveTask:64] 2016-07-21 08:18:32,218 StreamReceiveTask.java:214 - Error applying streamed data:
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.0.7.jar:3.0.7]
    at org.apache.cassandra.db.view.ViewUpdateGenerator.updateEntry(ViewUpdateGenerator.java:273) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.db.view.ViewUpdateGenerator.addBaseTableUpdate(ViewUpdateGenerator.java:127) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.db.view.TableViews.addToViewUpdateGenerators(TableViews.java:403) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.db.view.TableViews.generateViewUpdates(TableViews.java:236) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.db.view.TableViews.pushViewReplicaUpdates(TableViews.java:140) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:485) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:384) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.db.Mutation.applyFuture(Mutation.java:205) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.db.Mutation.apply(Mutation.java:217) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.db.Mutation.applyUnsafe(Mutation.java:236) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.streaming.StreamReceiveTask$OnCompletionRunnable.run(StreamReceiveTask.java:169) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_77]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77]
{code}


was (Author: tvdw):
This seems to also affect 3.0.7+

> 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)