cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefania (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-13050) ReadCommand.CheckForAbort not monitoring CQL rows for range queries
Date Wed, 21 Dec 2016 04:15:58 GMT

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

Stefania commented on CASSANDRA-13050:
--------------------------------------

There were some failures in the unit and dtests, for example [here|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-13050-3.11-testall/1/testReport/junit/org.apache.cassandra.cql3/SimpleQueryTest/restrictionOnRegularColumnWithStaticColumnPresentTest/].
They were caused by the fact that we no longer create a new stopping transformation when [applying
it to the partition|https://github.com/apache/cassandra/compare/trunk...stef1927:13050-3.11#diff-861bc950c82973fb8f97f179e35be7f3R544].
If the previous partition is not closed, then this assertion is triggered:

{code}
junit.framework.AssertionFailedError
	at org.apache.cassandra.db.transform.StoppingTransformation.attachTo(StoppingTransformation.java:65)
	at org.apache.cassandra.db.transform.BaseRows.add(BaseRows.java:104)
	at org.apache.cassandra.db.transform.UnfilteredRows.add(UnfilteredRows.java:44)
	at org.apache.cassandra.db.transform.Transformation.add(Transformation.java:174)
	at org.apache.cassandra.db.transform.Transformation.apply(Transformation.java:140)
	at org.apache.cassandra.db.ReadCommand$CheckForAbort.applyToPartition(ReadCommand.java:544)
	at org.apache.cassandra.db.ReadCommand$CheckForAbort.applyToPartition(ReadCommand.java:532)
	at org.apache.cassandra.db.transform.BasePartitions.hasNext(BasePartitions.java:96)
	at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:761)
	at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:406)
	at org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:428)
	at org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:412)
	at org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:79)
	at org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:306)
	at org.apache.cassandra.cql3.CQLTester.executeFormattedQuery(CQLTester.java:768)
	at org.apache.cassandra.cql3.CQLTester.execute(CQLTester.java:756)
	at org.apache.cassandra.cql3.SimpleQueryTest.restrictionOnRegularColumnWithStaticColumnPresentTest(SimpleQueryTest.java:566)
{code}

I fixed the failures by ensuring that the previous partition is closed, but the [assertion|https://github.com/stef1927/cassandra/blob/13050-3.11/src/java/org/apache/cassandra/db/transform/StoppingTransformation.java#L65]
in StoppingTransformation worries me a bit. We should perhaps change it into an error, along
with the [other one|https://github.com/stef1927/cassandra/blob/13050-3.11/src/java/org/apache/cassandra/db/transform/StoppingTransformation.java#L58]
for partition iterators.

> ReadCommand.CheckForAbort not monitoring CQL rows for range queries
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-13050
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13050
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local Write-Read Paths
>            Reporter: Stefania
>            Assignee: Stefania
>             Fix For: 3.x
>
>
> -If I understood the iterator transformations introduced by CASSANDRA-9975 correctly,-
[ReadCommand.CheckForAbort|https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/db/ReadCommand.java#L541]
should apply itself before returning a partition. At the moment it is applied to row iterators
for single command partitions, but for range queries -I think- it only monitors the query
progress when a new partition is iterated, not when a new row is iterated. So for large partitions,
we may fail to log a query as slow, or fail to abort it if the RPC timeout is exceeded.



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

Mime
View raw message