cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pruner, Anne (Anne)" <>
Subject IllegalArgumentException on query with AbstractCompositeType
Date Thu, 11 Jul 2013 12:40:19 GMT
                I've been tearing my hair out trying to figure out why this query fails. 
In fact, it only fails on machines with slower CPUs and after having previously run some other
junit tests.  I'm running junits to an embedded Cassandra server, which works well in pretty
much all other cases, but this one is flaky.  I've tried to rule out timing issues by placing
a 10 second delay just before this query, just in case somehow the data isn't getting into
the db in a timely manner, but that doesn't have any effect.  I've also tried removing the
"ORDER BY" clause, which seems to be the place in the code it's getting hung up on, but that
also doesn't have any effect.  The "ALLOW FILTERING" clause also has no effect.

DEBUG [Native-Transport-Requests:16] 2013-07-10 16:28:21,993 (line 277) Received:
QUERY SELECT * FROM conv_msgdata_by_participant_cql WHERE entityConversationId=''
AND messageId<'2013-07-10T20:29:09.773Zzzzzzz' ORDER BY messageId DESC LIMIT 15 ALLOW FILTERING;
ERROR [ReadStage:34] 2013-07-10 16:28:21,995 (line 132) Exception in
thread Thread[ReadStage:34,5,main]
java.lang.RuntimeException: java.lang.IllegalArgumentException
        at org.apache.cassandra.service.StorageProxy$
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
        at java.util.concurrent.ThreadPoolExecutor$
Caused by: java.lang.IllegalArgumentException
        at java.nio.Buffer.limit(
        at org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(
        at org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(
        at org.apache.cassandra.db.columniterator.IndexedSliceReader$BlockFetcher.isColumnBeforeSliceFinish(
        at org.apache.cassandra.db.columniterator.IndexedSliceReader$SimpleBlockFetcher.<init>(
        at org.apache.cassandra.db.columniterator.IndexedSliceReader.<init>(
        at org.apache.cassandra.db.columniterator.SSTableSliceIterator.createReader(
        at org.apache.cassandra.db.columniterator.SSTableSliceIterator.<init>(
        at org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(
        at org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(
        at org.apache.cassandra.db.CollationController.collectAllData(
        at org.apache.cassandra.db.CollationController.getTopLevelColumns(
        at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(
        at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(
        at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(
        at org.apache.cassandra.db.Table.getRow(
        at org.apache.cassandra.db.SliceFromReadCommand.getRow(
        at org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(
        at org.apache.cassandra.service.StorageProxy$

Here's the table it's querying from:

CREATE TABLE conv_msgdata_by_participant_cql (
    entityConversationId text,
    messageId text,
    jsonMessage text,
    msgReadFlag boolean,
    msgReadDate text,
    PRIMARY KEY (entityConversationId, messageId)
) ;

CREATE INDEX ON conv_msgdata_by_participant_cql(msgReadFlag);

Any ideas?


View raw message