I have to thank you for bringing it up! :)

On Wednesday, March 26, 2014 9:40:26 PM UTC+1, Shinsuke Sugaya wrote:
>
> Thank you for the investigation and filing it.
>
> Regards,
>  shinsuke
>
> On Thursday, March 27, 2014 12:55:56 AM UTC+9, simonw wrote:
>>
>> I opened an issue for this: 
>> https://github.com/elasticsearch/elasticsearch/issues/5559
>>
>> On Wednesday, March 26, 2014 5:53:15 AM UTC+1, Shinsuke Sugaya wrote:
>>>
>>> Hi
>>>
>>> I encountered the following problem:
>>>
>>> Caused by: java.lang.IndexOutOfBoundsException: index (-2) must not be 
>>> negative
>>>         at 
>>> org.elasticsearch.common.base.Preconditions.checkElementIndex(Preconditions.java:306)
>>>         at 
>>> org.elasticsearch.common.base.Preconditions.checkElementIndex(Preconditions.java:285)
>>>         at 
>>> org.elasticsearch.common.collect.RegularImmutableList.get(RegularImmutableList.java:65)
>>>         at 
>>> org.elasticsearch.cluster.routing.IndexShardRoutingTable.preferNodeActiveInitializingShardsIt(IndexShardRoutingTable.java:378)
>>>         at 
>>> org.elasticsearch.cluster.routing.operation.plain.PlainOperationRouting.preferenceActiveShardIterator(PlainOperationRouting.java:210)
>>>         at 
>>> org.elasticsearch.cluster.routing.operation.plain.PlainOperationRouting.getShards(PlainOperationRouting.java:80)
>>>         at 
>>> org.elasticsearch.action.get.TransportGetAction.shards(TransportGetAction.java:80)
>>>         at 
>>> org.elasticsearch.action.get.TransportGetAction.shards(TransportGetAction.java:42)
>>>         at 
>>> org.elasticsearch.action.support.single.shard.TransportShardSingleOperationAction$AsyncSingleAction.<init>(TransportShardSingleOperationAction.java:121)
>>>         at 
>>> org.elasticsearch.action.support.single.shard.TransportShardSingleOperationAction$AsyncSingleAction.<init>(TransportShardSingleOperationAction.java:97)
>>>         at 
>>> org.elasticsearch.action.support.single.shard.TransportShardSingleOperationAction.doExecute(TransportShardSingleOperationAction.java:74)
>>>         at 
>>> org.elasticsearch.action.support.single.shard.TransportShardSingleOperationAction.doExecute(TransportShardSingleOperationAction.java:49)
>>>         at 
>>> org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:63)
>>>         at 
>>> org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:49)
>>>         at 
>>> org.elasticsearch.client.node.NodeClient.execute(NodeClient.java:85)
>>>         at 
>>> org.elasticsearch.client.support.AbstractClient.get(AbstractClient.java:174)
>>>         ... 9 more
>>>
>>> My environment is:
>>>
>>>  - Elasticserach 0.90.7
>>>  - 3 nodes in a cluster
>>>  - Send GET request with preference=_local
>>>
>>> Looking into IndexShardRoutingTable class, it seems that "loc" is 
>>> an unexpected negative value at the following code. pickIndex method 
>>> returns a value of "counter"(incremental value). If "counter" achieves 
>>> Integer.MAX_VALUE, I think that "loc" is negative and then 
>>> activeShards.get(loc) throws the exception.
>>>
>>>         int index = pickIndex();
>>>         for (int i = 0; i < activeShards.size(); i++) {
>>>             int loc = (index + i) % activeShards.size();
>>>
>>> If it's a bug, I'll file an issue.
>>>
>>> Best regards,
>>>  shinsuke
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/eb9d97f0-859d-42c0-84c4-33fdb63c69e7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to