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