From 86b36febdb13c5e191d9c2bc40abb9be0eb2d849 Mon Sep 17 00:00:00 2001
From: William Brafford
Date: Fri, 29 Mar 2024 17:54:06 -0400
Subject: [PATCH] Switch from ESSingleNodeTestCase to ESIntegTestCase
---
.../kibana/KibanaThreadPoolTests.java | 2 +-
.../indices/SystemIndexThreadPoolTests.java | 20 ++++++-------------
2 files changed, 7 insertions(+), 15 deletions(-)
diff --git a/modules/kibana/src/test/java/org/elasticsearch/kibana/KibanaThreadPoolTests.java b/modules/kibana/src/test/java/org/elasticsearch/kibana/KibanaThreadPoolTests.java
index 49cc307eeb7a5..cd9ab67b45fb8 100644
--- a/modules/kibana/src/test/java/org/elasticsearch/kibana/KibanaThreadPoolTests.java
+++ b/modules/kibana/src/test/java/org/elasticsearch/kibana/KibanaThreadPoolTests.java
@@ -23,7 +23,7 @@
public class KibanaThreadPoolTests extends SystemIndexThreadPoolTests {
@Override
- protected Collection> getPlugins() {
+ protected Collection> nodePlugins() {
return Set.of(KibanaPlugin.class);
}
diff --git a/test/framework/src/main/java/org/elasticsearch/indices/SystemIndexThreadPoolTests.java b/test/framework/src/main/java/org/elasticsearch/indices/SystemIndexThreadPoolTests.java
index 36bf7c2d67311..150e1ad0659cc 100644
--- a/test/framework/src/main/java/org/elasticsearch/indices/SystemIndexThreadPoolTests.java
+++ b/test/framework/src/main/java/org/elasticsearch/indices/SystemIndexThreadPoolTests.java
@@ -9,10 +9,9 @@
package org.elasticsearch.indices;
import org.elasticsearch.ElasticsearchTimeoutException;
-import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.test.ESSingleNodeTestCase;
+import org.elasticsearch.test.ESIntegTestCase;
import org.elasticsearch.threadpool.ThreadPool;
import java.util.Map;
@@ -28,10 +27,11 @@
* threads that wait on a countdown latch. This lets us verify that operations on system indices
* are being directed to other thread pools.
*
- * When implementing this class, don't forget to override {@link ESSingleNodeTestCase#getPlugins()} if
+ *
When implementing this class, don't forget to override {@link ESIntegTestCase#nodePlugins()} if
* the relevant system index is defined in a plugin.
*/
-public abstract class SystemIndexThreadPoolTests extends ESSingleNodeTestCase {
+@ESIntegTestCase.ClusterScope(numDataNodes = 1, numClientNodes = 0)
+public abstract class SystemIndexThreadPoolTests extends ESIntegTestCase {
private static final String USER_INDEX = "user_index";
@@ -41,17 +41,9 @@ protected Set threadPoolsToBlock() {
return Set.of(ThreadPool.Names.GET, ThreadPool.Names.WRITE, ThreadPool.Names.SEARCH);
}
- @Override
- protected Settings nodeSettings() {
- var settingsBuilder = Settings.builder().put(super.nodeSettings()).put("node.name", "kibana-thread-pool-tests");
- for (String threadPoolName : threadPoolsToBlock()) {
- settingsBuilder.put("thread_pool." + threadPoolName + ".queue_size", 10);
- }
- return settingsBuilder.build();
- }
-
private void assertThreadPoolsBlocked() {
TimeValue timeout = TimeValue.timeValueMillis(25);
+ logger.info("cluster data nodes: " + cluster().numDataNodes() + ", data and master: " + cluster().numDataAndMasterNodes());
var e1 = expectThrows(
ElasticsearchTimeoutException.class,
() -> client().prepareIndex(USER_INDEX).setSource(Map.of("foo", "bar")).get(timeout)
@@ -67,7 +59,7 @@ private void assertThreadPoolsBlocked() {
}
protected void runWithBlockedThreadPools(Runnable runnable) {
- ThreadPool threadPool = node().injector().getInstance(ThreadPool.class);
+ ThreadPool threadPool = internalCluster().getInstance(ThreadPool.class);
int numThreadsToBlock = threadPoolsToBlock().stream().map(threadPool::info).mapToInt(ThreadPool.Info::getMax).sum();
CyclicBarrier cb = new CyclicBarrier(numThreadsToBlock + 1);
Runnable waitAction = () -> {