diff --git a/docs/changelog/136279.yaml b/docs/changelog/136279.yaml new file mode 100644 index 0000000000000..5d4ae64bd705a --- /dev/null +++ b/docs/changelog/136279.yaml @@ -0,0 +1,5 @@ +pr: 136279 +summary: Initialize `TermsEnum` eagerly +area: Search +type: bug +issues: [] diff --git a/server/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java b/server/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java index 8b59a59dcf313..6bd61a8355ab0 100644 --- a/server/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java +++ b/server/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java @@ -13,6 +13,7 @@ import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configurator; +import org.apache.lucene.index.TermsEnum; import org.apache.lucene.util.Constants; import org.apache.lucene.util.StringHelper; import org.apache.lucene.util.VectorUtil; @@ -203,6 +204,8 @@ private static void initPhase2(Bootstrap bootstrap) throws IOException { IfConfig.logIfNecessary(); ensureInitialized( + // See https://github.com/elastic/elasticsearch/issues/136268 + TermsEnum.class, // ReleaseVersions does nontrivial static initialization which should always succeed but load it now (before SM) to be sure ReleaseVersions.class, // ReferenceDocs class does nontrivial static initialization which should always succeed but load it now (before SM) to be sure