incorrect live endpoint checks in StorageProxy.getRangeSlice() and scan()
-------------------------------------------------------------------------

                 Key: CASSANDRA-2132
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2132
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.7.1
            Reporter: Aaron Morton


If a get_range_slice() is started without any live endpoints the following 
appears in the logs and the request fails with an ApplicationError rather than 
an UnavailableError 

ERROR [pool-1-thread-61] 2011-02-04 16:11:30,725 Cassandra.java (line 
org.apache.cassandra.thrift.Cassandra$Processor) Internal error processing 
get_range_slices
java.lang.AssertionError
        at 
org.apache.cassandra.service.RangeSliceResponseResolver.<init>(RangeSliceResponseResolver.java:52)
        at 
org.apache.cassandra.service.StorageProxy.getRangeSlice(StorageProxy.java:459)
        at 
org.apache.cassandra.thrift.CassandraServer.get_range_slices(CassandraServer.java:473)
        at 
org.apache.cassandra.thrift.Cassandra$Processor$get_range_slices.process(Cassandra.java:2868)
        at 
org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2555)
        at 
org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:167)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

I think we need to...

- Remove the assertion in RangeSliceResponseResolver ctor
- call handler.assureSufficientLiveNodes() after line 733 in  
StorageProxy.getRangeSlice()

Also StorageProxy.scan does a manual check of the live node count at line 1016, 
this means does not use the special logic for 
DatacenterReadCallback.assureSufficientLiveNodes()

I've not checked this in the trunk. Will not have time to work on these during 
the day. 


-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to