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 = () -> {