Timeout exception while IndexSearch on not valid column values
--------------------------------------------------------------

                 Key: CASSANDRA-3630
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3630
             Project: Cassandra
          Issue Type: Bug
    Affects Versions: 0.7.0
            Reporter: Evgeny Ryabitskiy
             Fix For: 1.0.6


While index_scan it is possible that column value is not valid. For example if 
it is a DynamicCompositeType there can be stored LongType and search is using 
DecimalType. In result cassandra has following behavior:
1) Cassandra server logs Fatal exception and stops MessageDeliveryTask 
execution without any response to client
2) Client wait response until timeout, at result application fails with 
TimeoutException

I think this behavior is incorrect, and client should get reply about search 
request failure.

Logs on server side:
{quote}
14:37:57.924 [ReadStage:2] ERROR o.a.c.s.AbstractCassandraDaemon - Fatal 
exception in thread Thread[ReadStage:2,5,main]
java.lang.RuntimeException: java.lang.RuntimeException: Comparator mismatch 
while comparing two DynamicCompositeType colum name
        at 
org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:51)
 ~[cassandra-all-1.0.3.jar:1.0.3]
        at 
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:59) 
~[cassandra-all-1.0.3.jar:1.0.3]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
 [na:1.6.0_26]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
[na:1.6.0_26]
        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_26]
Caused by: java.lang.RuntimeException: Comparator mismatch while comparing two 
DynamicCompositeType colum name
        at 
org.apache.cassandra.db.marshal.DynamicCompositeType.getNextComparator(DynamicCompositeType.java:124)
 ~[cassandra-all-1.0.3.jar:1.0.3]
        at 
org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:80)
 ~[cassandra-all-1.0.3.jar:1.0.3]
        at 
org.apache.cassandra.db.marshal.AbstractCompositeType.compare(AbstractCompositeType.java:37)
 ~[cassandra-all-1.0.3.jar:1.0.3]
        at 
org.apache.cassandra.db.index.SecondaryIndexSearcher.satisfies(SecondaryIndexSearcher.java:54)
 ~[cassandra-all-1.0.3.jar:1.0.3]
        at 
org.apache.cassandra.db.index.keys.KeysSearcher.search(KeysSearcher.java:230) 
~[cassandra-all-1.0.3.jar:1.0.3]
        at 
org.apache.cassandra.db.index.SecondaryIndexManager.search(SecondaryIndexManager.java:505)
 ~[cassandra-all-1.0.3.jar:1.0.3]
        at 
org.apache.cassandra.service.IndexScanVerbHandler.doVerb(IndexScanVerbHandler.java:42)
 ~[cassandra-all-1.0.3.jar:1.0.3]
        ... 4 common frames omitted
{quote}


Logs on client side:

{quote}
org.scale7.cassandra.pelops.exceptions.TimedOutException: null
        at 
org.scale7.cassandra.pelops.exceptions.IExceptionTranslator$ExceptionTranslator.translate(IExceptionTranslator.java:55)
 ~[scale7-pelops-1.2-0.8.x.jar:na]
        at org.scale7.cassandra.pelops.Operand.tryOperation(Operand.java:116) 
~[scale7-pelops-1.2-0.8.x.jar:na]
        at 
org.scale7.cassandra.pelops.Selector.getKeySlices(Selector.java:1877) 
~[scale7-pelops-1.2-0.8.x.jar:na]
................................
Caused by: org.apache.cassandra.thrift.TimedOutException: null
        at 
org.apache.cassandra.thrift.Cassandra$get_indexed_slices_result.read(Cassandra.java:14073)
 ~[cassandra-thrift-1.0.3.jar:1.0.3]
        at 
org.apache.cassandra.thrift.Cassandra$Client.recv_get_indexed_slices(Cassandra.java:810)
 ~[cassandra-thrift-1.0.3.jar:1.0.3]
        at 
org.apache.cassandra.thrift.Cassandra$Client.get_indexed_slices(Cassandra.java:782)
 ~[cassandra-thrift-1.0.3.jar:1.0.3]
        at org.scale7.cassandra.pelops.Selector$6.execute(Selector.java:1880) 
~[scale7-pelops-1.2-0.8.x.jar:na]
        at org.scale7.cassandra.pelops.Selector$6.execute(Selector.java:1877) 
~[scale7-pelops-1.2-0.8.x.jar:na]
        at org.scale7.cassandra.pelops.Operand.tryOperation(Operand.java:82) 
~[scale7-pelops-1.2-0.8.x.jar:na]
        ... 9 common frames omitted
{quote}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to