mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-06-28 09:28:55 -04:00
Fix KibanaThreadPoolIT
(#120097)
This test will fail to see the rejection if the GET retries on a different shard copy, so with this commit we make sure there are no spare shard copies on which to retry. Closes #113939
This commit is contained in:
parent
8114f85bec
commit
7ddcfeb638
2 changed files with 10 additions and 9 deletions
|
@ -16,6 +16,8 @@ import org.elasticsearch.action.search.SearchPhaseExecutionException;
|
||||||
import org.elasticsearch.action.search.SearchRequest;
|
import org.elasticsearch.action.search.SearchRequest;
|
||||||
import org.elasticsearch.action.support.WriteRequest;
|
import org.elasticsearch.action.support.WriteRequest;
|
||||||
import org.elasticsearch.client.internal.Client;
|
import org.elasticsearch.client.internal.Client;
|
||||||
|
import org.elasticsearch.cluster.metadata.IndexMetadata;
|
||||||
|
import org.elasticsearch.cluster.routing.allocation.decider.EnableAllocationDecider;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.util.concurrent.EsRejectedExecutionException;
|
import org.elasticsearch.common.util.concurrent.EsRejectedExecutionException;
|
||||||
import org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor;
|
import org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor;
|
||||||
|
@ -23,7 +25,6 @@ import org.elasticsearch.index.IndexingPressure;
|
||||||
import org.elasticsearch.index.query.QueryBuilders;
|
import org.elasticsearch.index.query.QueryBuilders;
|
||||||
import org.elasticsearch.plugins.Plugin;
|
import org.elasticsearch.plugins.Plugin;
|
||||||
import org.elasticsearch.test.ESIntegTestCase;
|
import org.elasticsearch.test.ESIntegTestCase;
|
||||||
import org.elasticsearch.test.junit.annotations.TestLogging;
|
|
||||||
import org.elasticsearch.threadpool.ThreadPool;
|
import org.elasticsearch.threadpool.ThreadPool;
|
||||||
import org.elasticsearch.threadpool.ThreadPoolStats;
|
import org.elasticsearch.threadpool.ThreadPoolStats;
|
||||||
|
|
||||||
|
@ -49,10 +50,6 @@ import static org.hamcrest.Matchers.startsWith;
|
||||||
* threads that wait on a phaser. This lets us verify that operations on system indices
|
* threads that wait on a phaser. This lets us verify that operations on system indices
|
||||||
* are being directed to other thread pools.</p>
|
* are being directed to other thread pools.</p>
|
||||||
*/
|
*/
|
||||||
@TestLogging(
|
|
||||||
reason = "investigate",
|
|
||||||
value = "org.elasticsearch.kibana.KibanaThreadPoolIT:DEBUG,org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor:TRACE"
|
|
||||||
)
|
|
||||||
public class KibanaThreadPoolIT extends ESIntegTestCase {
|
public class KibanaThreadPoolIT extends ESIntegTestCase {
|
||||||
private static final Logger logger = LogManager.getLogger(KibanaThreadPoolIT.class);
|
private static final Logger logger = LogManager.getLogger(KibanaThreadPoolIT.class);
|
||||||
|
|
||||||
|
@ -68,6 +65,8 @@ public class KibanaThreadPoolIT extends ESIntegTestCase {
|
||||||
.put("thread_pool.write.queue_size", 1)
|
.put("thread_pool.write.queue_size", 1)
|
||||||
.put("thread_pool.get.size", 1)
|
.put("thread_pool.get.size", 1)
|
||||||
.put("thread_pool.get.queue_size", 1)
|
.put("thread_pool.get.queue_size", 1)
|
||||||
|
// a rejected GET may retry on an INITIALIZING shard (the target of a relocation) and unexpectedly succeed, so block rebalancing
|
||||||
|
.put(EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), EnableAllocationDecider.Rebalance.NONE)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,7 +111,12 @@ public class KibanaThreadPoolIT extends ESIntegTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testBlockedThreadPoolsRejectUserRequests() throws Exception {
|
public void testBlockedThreadPoolsRejectUserRequests() throws Exception {
|
||||||
assertAcked(client().admin().indices().prepareCreate(USER_INDEX));
|
assertAcked(
|
||||||
|
client().admin()
|
||||||
|
.indices()
|
||||||
|
.prepareCreate(USER_INDEX)
|
||||||
|
.setSettings(Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 0)) // avoid retrying rejected actions
|
||||||
|
);
|
||||||
|
|
||||||
runWithBlockedThreadPools(this::assertThreadPoolsBlocked);
|
runWithBlockedThreadPools(this::assertThreadPoolsBlocked);
|
||||||
|
|
||||||
|
|
|
@ -52,9 +52,6 @@ tests:
|
||||||
- class: org.elasticsearch.xpack.transform.integration.TransformIT
|
- class: org.elasticsearch.xpack.transform.integration.TransformIT
|
||||||
method: testStopWaitForCheckpoint
|
method: testStopWaitForCheckpoint
|
||||||
issue: https://github.com/elastic/elasticsearch/issues/106113
|
issue: https://github.com/elastic/elasticsearch/issues/106113
|
||||||
- class: org.elasticsearch.kibana.KibanaThreadPoolIT
|
|
||||||
method: testBlockedThreadPoolsRejectUserRequests
|
|
||||||
issue: https://github.com/elastic/elasticsearch/issues/113939
|
|
||||||
- class: org.elasticsearch.xpack.inference.TextEmbeddingCrudIT
|
- class: org.elasticsearch.xpack.inference.TextEmbeddingCrudIT
|
||||||
method: testPutE5Small_withPlatformAgnosticVariant
|
method: testPutE5Small_withPlatformAgnosticVariant
|
||||||
issue: https://github.com/elastic/elasticsearch/issues/113983
|
issue: https://github.com/elastic/elasticsearch/issues/113983
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue