cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Yeschenko (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-7875) Prepared statements using dropped indexes are not handled correctly
Date Tue, 06 Jan 2015 17:46:35 GMT

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

Aleksey Yeschenko commented on CASSANDRA-7875:
----------------------------------------------

As for this ticket, I'm not sure that just adding an extra runtime check is the way to go,
or sufficient.
Since this event (dropping an index) should be very rare in production, we should probably
just extend CASSANDRA-7910 logic here, and just invalidate the potentially affected statements.

> Prepared statements using dropped indexes are not handled correctly
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-7875
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7875
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Tyler Hobbs
>            Assignee: Tyler Hobbs
>            Priority: Minor
>             Fix For: 2.1.3
>
>         Attachments: repro.py
>
>
> When select statements are prepared, we verify that the column restrictions use indexes
(where necessary).  However, we don't perform a similar check when the statement is executed,
so it fails somewhere further down the line.  In this case, it hits an assertion:
> {noformat}
> java.lang.AssertionError: Sequential scan with filters is not supported (if you just
created an index, you need to wait for the creation to be propagated to all nodes before querying
it)
> 	at org.apache.cassandra.db.filter.ExtendedFilter$WithClauses.getExtraFilter(ExtendedFilter.java:259)
> 	at org.apache.cassandra.db.ColumnFamilyStore.filter(ColumnFamilyStore.java:1759)
> 	at org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:1709)
> 	at org.apache.cassandra.db.PagedRangeCommand.executeLocally(PagedRangeCommand.java:119)
> 	at org.apache.cassandra.service.StorageProxy$LocalRangeSliceRunnable.runMayThrow(StorageProxy.java:1394)
> 	at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1936)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:724)
> {noformat}
> During execution, we should check that the indexes still exist and provide a better error
if they do not.



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

Mime
View raw message