diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 98587a05f844e..e39717c9358d6 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -2746,122 +2746,170 @@
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
-
+
+
+
diff --git a/server/src/main/java/org/elasticsearch/node/NodeConstruction.java b/server/src/main/java/org/elasticsearch/node/NodeConstruction.java
index 77af41a6db6f3..f56b40e6242eb 100644
--- a/server/src/main/java/org/elasticsearch/node/NodeConstruction.java
+++ b/server/src/main/java/org/elasticsearch/node/NodeConstruction.java
@@ -85,6 +85,7 @@
import org.elasticsearch.core.IOUtils;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.core.Tuple;
+import org.elasticsearch.core.UpdateForV9;
import org.elasticsearch.discovery.DiscoveryModule;
import org.elasticsearch.env.Environment;
import org.elasticsearch.env.NodeEnvironment;
@@ -497,13 +498,7 @@ private SettingsModule validateSettings(Settings envSettings, Settings settings,
for (final ExecutorBuilder> builder : threadPool.builders()) {
additionalSettings.addAll(builder.getRegisteredSettings());
}
- // TODO remove the below settings, they are unused and only here to enable BwC for deployments that still use them
- additionalSettings.add(
- Setting.intSetting("thread_pool.search_worker.queue_size", 0, Setting.Property.NodeScope, Setting.Property.DeprecatedWarning)
- );
- additionalSettings.add(
- Setting.intSetting("thread_pool.search_worker.size", 0, Setting.Property.NodeScope, Setting.Property.DeprecatedWarning)
- );
+ addBwcSearchWorkerSettings(additionalSettings);
SettingsExtension.load().forEach(e -> additionalSettings.addAll(e.getSettings()));
// this is as early as we can validate settings at this point. we already pass them to ThreadPool
@@ -534,6 +529,17 @@ private SettingsModule validateSettings(Settings envSettings, Settings settings,
return settingsModule;
}
+ @UpdateForV9
+ private static void addBwcSearchWorkerSettings(List> additionalSettings) {
+ // TODO remove the below settings, they are unused and only here to enable BwC for deployments that still use them
+ additionalSettings.add(
+ Setting.intSetting("thread_pool.search_worker.queue_size", 0, Setting.Property.NodeScope, Setting.Property.DeprecatedWarning)
+ );
+ additionalSettings.add(
+ Setting.intSetting("thread_pool.search_worker.size", 0, Setting.Property.NodeScope, Setting.Property.DeprecatedWarning)
+ );
+ }
+
private SearchModule createSearchModule(Settings settings, ThreadPool threadPool, TelemetryProvider telemetryProvider) {
IndexSearcher.setMaxClauseCount(SearchUtils.calculateMaxClauseValue(threadPool));
return new SearchModule(settings, pluginsService.filterPlugins(SearchPlugin.class).toList(), telemetryProvider);
diff --git a/server/src/main/java/org/elasticsearch/search/internal/ContextIndexSearcher.java b/server/src/main/java/org/elasticsearch/search/internal/ContextIndexSearcher.java
index a797c793794d1..d840432a05259 100644
--- a/server/src/main/java/org/elasticsearch/search/internal/ContextIndexSearcher.java
+++ b/server/src/main/java/org/elasticsearch/search/internal/ContextIndexSearcher.java
@@ -55,7 +55,6 @@
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.Executor;
-import java.util.concurrent.RejectedExecutionException;
/**
* Context-aware extension of {@link IndexSearcher}.
@@ -132,18 +131,7 @@ public ContextIndexSearcher(
int maximumNumberOfSlices,
int minimumDocsPerSlice
) throws IOException {
- super(
- wrapWithExitableDirectoryReader ? new ExitableDirectoryReader((DirectoryReader) reader, cancellable) : reader,
- executor == null ? null : r -> {
- try {
- executor.execute(r);
- } catch (RejectedExecutionException ignored) {
- // in case of rejection run on the current thread without forking, we don't want failures in the Lucene search in the
- // unlikely case of running into a full queue on the executor side
- r.run();
- }
- }
- );
+ super(wrapWithExitableDirectoryReader ? new ExitableDirectoryReader((DirectoryReader) reader, cancellable) : reader, executor);
setSimilarity(similarity);
setQueryCache(queryCache);
setQueryCachingPolicy(queryCachingPolicy);