cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Morton (JIRA)" <>
Subject [jira] Created: (CASSANDRA-2132) incorrect live endpoint checks in StorageProxy.getRangeSlice() and scan()
Date Mon, 07 Feb 2011 22:56:57 GMT
incorrect live endpoint checks in StorageProxy.getRangeSlice() and scan()

                 Key: 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 (line org.apache.cassandra.thrift.Cassandra$Processor)
Internal error processing get_range_slices
        at org.apache.cassandra.service.RangeSliceResponseResolver.<init>(
        at org.apache.cassandra.service.StorageProxy.getRangeSlice(
        at org.apache.cassandra.thrift.CassandraServer.get_range_slices(
        at org.apache.cassandra.thrift.Cassandra$Processor$get_range_slices.process(
        at org.apache.cassandra.thrift.Cassandra$Processor.process(
        at org.apache.cassandra.thrift.CustomTThreadPoolServer$
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
        at java.util.concurrent.ThreadPoolExecutor$

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:


View raw message