Skip to content

Commit 696ff89

Browse files
authored
Fix security index creation race condition (elastic#128825)
* Fix security index creation race condition
1 parent 7c22694 commit 696ff89

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/test/SecuritySingleNodeTestCase.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import org.apache.http.HttpHost;
1010
import org.elasticsearch.ResourceAlreadyExistsException;
11+
import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
12+
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
1113
import org.elasticsearch.action.admin.cluster.node.info.NodeInfo;
1214
import org.elasticsearch.action.admin.cluster.node.info.NodesInfoResponse;
1315
import org.elasticsearch.action.admin.cluster.node.info.PluginsAndModules;
@@ -413,7 +415,12 @@ protected void createSecurityIndexWithWaitForActiveShards() {
413415
try {
414416
client.admin().indices().create(createIndexRequest).actionGet();
415417
} catch (ResourceAlreadyExistsException e) {
416-
logger.info("Security index already exists, ignoring.", e);
418+
logger.info("Security index already exists, skipping creation and waiting for it to become available", e);
419+
ClusterHealthRequest healthRequest = new ClusterHealthRequest(TEST_REQUEST_TIMEOUT, SECURITY_MAIN_ALIAS).waitForActiveShards(
420+
ActiveShardCount.ALL
421+
);
422+
ClusterHealthResponse healthResponse = client.admin().cluster().health(healthRequest).actionGet();
423+
assertThat(healthResponse.isTimedOut(), is(false));
417424
}
418425
}
419426
}

0 commit comments

Comments
 (0)