cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-6447) SELECT someColumns FROM table results in AssertionError in AbstractQueryPager.discardFirst
Date Thu, 19 Dec 2013 16:10:15 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-6447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sylvain Lebresne updated CASSANDRA-6447:
----------------------------------------

    Reviewer: Aleksey Yeschenko  (was: Sylvain Lebresne)

> SELECT someColumns FROM table results in AssertionError in AbstractQueryPager.discardFirst
> ------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-6447
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6447
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: Cluster: single node server (ubuntu)
> Cassandra version: 2.0.3 (server/client)
> Client: Datastax cassandra-driver-core 2.0.0-rc1
>            Reporter: Julien Aymé
>            Assignee: Sylvain Lebresne
>             Fix For: 2.0.4
>
>         Attachments: 6447.txt, cassandra-2.0-6447.patch, stacktrace.txt
>
>
> I have a query which must read all the rows from the table:
> Query: "SELECT key, col1, col2, col3 FROM mytable"
> Here is the corresponding code (this is using datastax driver):
> {code}
> ResultSet result = session.execute("SELECT key, col1, col2, col3 FROM mytable");
> for (Row row : result) {
>      // do some work with row
> }
> {code}
> Messages sent from the client to Cassandra:
> * 1st: {{QUERY SELECT key, col1, col2, col3 FROM mytable([cl=ONE, vals=[], skip=false,
psize=5000, state=null, serialCl=ONE])}}
> * 2nd: {{QUERY SELECT key, col1, col2, col3 FROM mytable([cl=ONE, vals=[], skip=false,
psize=5000, state=java.nio.HeapByteBuffer[pos=24 lim=80 cap=410474], serialCl=ONE])}}
> On the first message, everything is fine, and the server returns 5000 rows.
> On the second message, paging is in progress, and the server fails in AbstractQueryPager.discardFirst:
AssertionError (stack trace attached).
> Here is some more info (step by step debugging on reception of 2nd message):
> {code}
> AbstractQueryPager.fetchPage(int):
> * pageSize=5000, currentPageSize=5001, rows size=5002, liveCount=5001
> * containsPreviousLast(rows.get(0)) returns true
> -> AbstractQueryPager.discardFirst(List<Row>):
> * rows size=5002
> * first=TreeMapBackedSortedColumns[with TreeMap size=1]
> -> AbstractQueryPager.discardHead(ColumnFamily, ...):
> * counter = ColumnCounter$GroupByPrefix
> * iter.hasNext() returns true (TreeMap$ValueIterator with TreeMap size=1)
> * Column c = DeletedColumn
> * counter.count() -> c.isLive returns false (c is DeletedColumn)
> * counter.live() = 0
> * iter.hasNext() returns false
> * Math.min(0, toDiscard==1) returns 0
> <- AbstractQueryPager.discardFirst(List<Row>):
> * discarded = 0;
> * count = newCf.getColumnCount() = 0;
> {code}
> ->  assert discarded == 1 *throws AssertionError*



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Mime
View raw message