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.
