You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2011/02/08 00:34:57 UTC

[jira] Resolved: (CASSANDRA-2132) incorrect live endpoint checks in StorageProxy.getRangeSlice() and scan()

     [ https://issues.apache.org/jira/browse/CASSANDRA-2132?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis resolved CASSANDRA-2132.
---------------------------------------

    Resolution: Duplicate

fixed in the patch for CASSANDRA-2069

> 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