[TEST] Don't delete index from the clusterstate otherwise it might be concurrently removed

This commit is contained in:
Simon Willnauer 2015-10-22 09:43:02 +02:00
parent 04dec8470a
commit bc3b91eb57
1 changed files with 15 additions and 12 deletions

View File

@ -49,7 +49,6 @@ public class IndicesLifecycleListenerSingleNodeTests extends ESSingleNodeTestCas
ensureGreen(); ensureGreen();
IndexMetaData metaData = indicesService.indexService("test").getMetaData(); IndexMetaData metaData = indicesService.indexService("test").getMetaData();
ShardRouting shardRouting = indicesService.indexService("test").getShard(0).routingEntry(); ShardRouting shardRouting = indicesService.indexService("test").getShard(0).routingEntry();
assertAcked(client().admin().indices().prepareDelete("test").get());
final AtomicInteger counter = new AtomicInteger(1); final AtomicInteger counter = new AtomicInteger(1);
IndexEventListener countingListener = new IndexEventListener() { IndexEventListener countingListener = new IndexEventListener() {
@Override @Override
@ -88,18 +87,22 @@ public class IndicesLifecycleListenerSingleNodeTests extends ESSingleNodeTestCas
counter.incrementAndGet(); counter.incrementAndGet();
} }
}; };
IndexService index = indicesService.createIndex(metaData, Arrays.asList(countingListener));
ShardRouting newRouting = new ShardRouting(shardRouting);
String nodeId = newRouting.currentNodeId();
ShardRoutingHelper.moveToUnassigned(newRouting, new UnassignedInfo(UnassignedInfo.Reason.INDEX_CREATED, "boom"));
ShardRoutingHelper.initialize(newRouting, nodeId);
IndexShard shard = index.createShard(0, newRouting);
shard.updateRoutingEntry(newRouting, true);
shard.recoverFromStore(newRouting, new DiscoveryNode("foo", DummyTransportAddress.INSTANCE, Version.CURRENT));
newRouting = new ShardRouting(newRouting);
ShardRoutingHelper.moveToStarted(newRouting);
shard.updateRoutingEntry(newRouting, true);
indicesService.deleteIndex("test", "simon says"); indicesService.deleteIndex("test", "simon says");
try {
IndexService index = indicesService.createIndex(metaData, Arrays.asList(countingListener));
ShardRouting newRouting = new ShardRouting(shardRouting);
String nodeId = newRouting.currentNodeId();
ShardRoutingHelper.moveToUnassigned(newRouting, new UnassignedInfo(UnassignedInfo.Reason.INDEX_CREATED, "boom"));
ShardRoutingHelper.initialize(newRouting, nodeId);
IndexShard shard = index.createShard(0, newRouting);
shard.updateRoutingEntry(newRouting, true);
shard.recoverFromStore(newRouting, new DiscoveryNode("foo", DummyTransportAddress.INSTANCE, Version.CURRENT));
newRouting = new ShardRouting(newRouting);
ShardRoutingHelper.moveToStarted(newRouting);
shard.updateRoutingEntry(newRouting, true);
} finally {
indicesService.deleteIndex("test", "simon says");
}
assertEquals(7, counter.get()); assertEquals(7, counter.get());
} }