From a02cd03a4b221e0e11b5a4e478655b5e9b2d49e1 Mon Sep 17 00:00:00 2001 From: Panagiotis Bailis Date: Thu, 11 Jul 2024 18:30:32 +0300 Subject: [PATCH 1/4] updating logging --- .../main/java/org/elasticsearch/search/SearchService.java | 5 +++++ .../java/org/elasticsearch/test/ESSingleNodeTestCase.java | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/search/SearchService.java b/server/src/main/java/org/elasticsearch/search/SearchService.java index 979a59b4d0b94..8732e023288d5 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchService.java +++ b/server/src/main/java/org/elasticsearch/search/SearchService.java @@ -463,6 +463,7 @@ public void beforeIndexShardCreated(ShardRouting routing, Settings indexSettings } protected void putReaderContext(ReaderContext context) { + logger.trace("adding reader context [{}]", context.id()); final ReaderContext previous = activeReaders.put(context.id().getId(), context); assert previous == null; // ensure that if we race against afterIndexRemoved, we remove the context from the active list. @@ -1567,6 +1568,10 @@ public int getActiveContexts() { return this.activeReaders.size(); } + public Set getActiveContextIDs() { + return this.activeReaders.keySet(); + } + /** * Returns the number of scroll contexts opened on the node */ diff --git a/test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java index 7fdc5765a90e8..af0dbd9ee7c0d 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java @@ -64,6 +64,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -134,7 +135,8 @@ public void tearDown() throws Exception { ensureAllFreeContextActionsAreConsumed(); SearchService searchService = getInstanceFromNode(SearchService.class); - assertThat(searchService.getActiveContexts(), equalTo(0)); + Set activeContexts = searchService.getActiveContextIDs(); + assertThat("contexts: {" + activeContexts + "} have not been closed yet", activeContexts.size(), equalTo(0)); assertThat(searchService.getOpenScrollContexts(), equalTo(0)); super.tearDown(); var deleteDataStreamsRequest = new DeleteDataStreamAction.Request("*"); From 23ad1bc863bae6ea30c3cabe8cc00d93a645d9e4 Mon Sep 17 00:00:00 2001 From: Panagiotis Bailis Date: Thu, 11 Jul 2024 18:35:01 +0300 Subject: [PATCH 2/4] iter --- .../src/main/java/org/elasticsearch/search/SearchService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/search/SearchService.java b/server/src/main/java/org/elasticsearch/search/SearchService.java index 8732e023288d5..3fe75b0dd7a19 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchService.java +++ b/server/src/main/java/org/elasticsearch/search/SearchService.java @@ -136,6 +136,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; @@ -1569,7 +1570,7 @@ public int getActiveContexts() { } public Set getActiveContextIDs() { - return this.activeReaders.keySet(); + return new HashSet<>(this.activeReaders.keySet()); } /** From c728c088c676766992cf1b5fb5a717da1a16c349 Mon Sep 17 00:00:00 2001 From: Panagiotis Bailis Date: Fri, 19 Jul 2024 14:56:28 +0300 Subject: [PATCH 3/4] adding more tests --- .../action/search/SearchProgressActionListenerIT.java | 2 +- .../search/aggregations/bucket/terms/RareTermsIT.java | 6 +++++- .../action/search/KnnSearchSingleNodeTests.java | 5 +++++ .../metrics/HistogramPercentileAggregationTests.java | 5 +++++ .../rank/textsimilarity/TextSimilarityRankTests.java | 5 +++++ .../authz/store/NativePrivilegeStoreSingleNodeTests.java | 5 +++++ 6 files changed, 26 insertions(+), 2 deletions(-) diff --git a/server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java b/server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java index e5dca62a97494..64b531d5eac9f 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/action/search/SearchProgressActionListenerIT.java @@ -40,7 +40,7 @@ import static org.hamcrest.Matchers.lessThan; @TestIssueLogging( - issueUrl = "https://github.com/elastic/elasticsearch/issues/109830", + issueUrl = "https://github.com/elastic/elasticsearch/issues/110790", value = "org.elasticsearch.action.search:TRACE," + "org.elasticsearch.search.SearchService:TRACE" ) public class SearchProgressActionListenerIT extends ESSingleNodeTestCase { diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/RareTermsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/RareTermsIT.java index c45cabf425b14..ab42da5249cc8 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/RareTermsIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/bucket/terms/RareTermsIT.java @@ -20,6 +20,7 @@ import org.elasticsearch.search.aggregations.metrics.InternalTopHits; import org.elasticsearch.search.aggregations.metrics.TopHitsAggregationBuilder; import org.elasticsearch.test.ESSingleNodeTestCase; +import org.elasticsearch.test.junit.annotations.TestIssueLogging; import org.elasticsearch.xcontent.XContentType; import org.hamcrest.Matchers; @@ -32,7 +33,10 @@ /** * Test that index enough data to trigger the creation of Cuckoo filters. */ - +@TestIssueLogging( + issueUrl = "https://github.com/elastic/elasticsearch/issues/110790", + value = "org.elasticsearch.action.search:TRACE," + "org.elasticsearch.search.SearchService:TRACE" +) public class RareTermsIT extends ESSingleNodeTestCase { private static final String index = "idx"; diff --git a/server/src/test/java/org/elasticsearch/action/search/KnnSearchSingleNodeTests.java b/server/src/test/java/org/elasticsearch/action/search/KnnSearchSingleNodeTests.java index c182d93ffafc9..6c6dd7e651a39 100644 --- a/server/src/test/java/org/elasticsearch/action/search/KnnSearchSingleNodeTests.java +++ b/server/src/test/java/org/elasticsearch/action/search/KnnSearchSingleNodeTests.java @@ -19,6 +19,7 @@ import org.elasticsearch.search.vectors.KnnSearchBuilder; import org.elasticsearch.search.vectors.KnnVectorQueryBuilder; import org.elasticsearch.test.ESSingleNodeTestCase; +import org.elasticsearch.test.junit.annotations.TestIssueLogging; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentFactory; @@ -30,6 +31,10 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThan; +@TestIssueLogging( + issueUrl = "https://github.com/elastic/elasticsearch/issues/110790", + value = "org.elasticsearch.action.search:TRACE," + "org.elasticsearch.search.SearchService:TRACE" +) public class KnnSearchSingleNodeTests extends ESSingleNodeTestCase { private static final int VECTOR_DIMENSION = 10; diff --git a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/aggregations/metrics/HistogramPercentileAggregationTests.java b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/aggregations/metrics/HistogramPercentileAggregationTests.java index 7c6f85104b5f8..b85f71dfeedb3 100644 --- a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/aggregations/metrics/HistogramPercentileAggregationTests.java +++ b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/aggregations/metrics/HistogramPercentileAggregationTests.java @@ -22,6 +22,7 @@ import org.elasticsearch.search.aggregations.metrics.TDigestState; import org.elasticsearch.tdigest.Centroid; import org.elasticsearch.test.ESSingleNodeTestCase; +import org.elasticsearch.test.junit.annotations.TestIssueLogging; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentFactory; import org.elasticsearch.xpack.analytics.AnalyticsPlugin; @@ -37,6 +38,10 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertResponse; +@TestIssueLogging( + issueUrl = "https://github.com/elastic/elasticsearch/issues/110790", + value = "org.elasticsearch.action.search:TRACE," + "org.elasticsearch.search.SearchService:TRACE" +) public class HistogramPercentileAggregationTests extends ESSingleNodeTestCase { public void testHDRHistogram() throws Exception { diff --git a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/rank/textsimilarity/TextSimilarityRankTests.java b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/rank/textsimilarity/TextSimilarityRankTests.java index 7fbfe70dbcfe7..7f0f0c869578c 100644 --- a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/rank/textsimilarity/TextSimilarityRankTests.java +++ b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/rank/textsimilarity/TextSimilarityRankTests.java @@ -18,6 +18,7 @@ import org.elasticsearch.search.rank.rerank.AbstractRerankerIT; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.test.hamcrest.ElasticsearchAssertions; +import org.elasticsearch.test.junit.annotations.TestIssueLogging; import org.elasticsearch.xpack.core.inference.action.InferenceAction; import org.elasticsearch.xpack.inference.InferencePlugin; import org.junit.Before; @@ -30,6 +31,10 @@ import static org.hamcrest.Matchers.containsString; +@TestIssueLogging( + issueUrl = "https://github.com/elastic/elasticsearch/issues/110790", + value = "org.elasticsearch.action.search:TRACE," + "org.elasticsearch.search.SearchService:TRACE" +) public class TextSimilarityRankTests extends ESSingleNodeTestCase { /** diff --git a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/store/NativePrivilegeStoreSingleNodeTests.java b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/store/NativePrivilegeStoreSingleNodeTests.java index 2503f2fc17d20..ce7b120d88498 100644 --- a/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/store/NativePrivilegeStoreSingleNodeTests.java +++ b/x-pack/plugin/security/src/internalClusterTest/java/org/elasticsearch/xpack/security/authz/store/NativePrivilegeStoreSingleNodeTests.java @@ -16,6 +16,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.test.SecuritySingleNodeTestCase; +import org.elasticsearch.test.junit.annotations.TestIssueLogging; import org.elasticsearch.xcontent.XContentType; import org.elasticsearch.xpack.core.security.action.apikey.CreateApiKeyAction; import org.elasticsearch.xpack.core.security.action.apikey.CreateApiKeyRequest; @@ -54,6 +55,10 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; +@TestIssueLogging( + issueUrl = "https://github.com/elastic/elasticsearch/issues/110790", + value = "org.elasticsearch.action.search:TRACE," + "org.elasticsearch.search.SearchService:TRACE" +) public class NativePrivilegeStoreSingleNodeTests extends SecuritySingleNodeTestCase { @Before From 0d5b74d194fb0cf58e546851067e839cf004605f Mon Sep 17 00:00:00 2001 From: Panagiotis Bailis Date: Fri, 19 Jul 2024 18:37:18 +0300 Subject: [PATCH 4/4] enabling trace logging for all essinglenodetests --- .../java/org/elasticsearch/test/ESSingleNodeTestCase.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java index af0dbd9ee7c0d..251cb4513e6ac 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java @@ -50,6 +50,7 @@ import org.elasticsearch.search.ConcurrentSearchTestPlugin; import org.elasticsearch.search.SearchService; import org.elasticsearch.search.internal.SearchContext; +import org.elasticsearch.test.junit.annotations.TestIssueLogging; import org.elasticsearch.test.rest.ESRestTestCase; import org.elasticsearch.transport.TransportSettings; import org.elasticsearch.xcontent.NamedXContentRegistry; @@ -82,6 +83,10 @@ * A test that keep a singleton node started for all tests that can be used to get * references to Guice injectors in unit tests. */ +@TestIssueLogging( + issueUrl = "https://github.com/elastic/elasticsearch/issues/110790", + value = "org.elasticsearch.action.search:TRACE," + "org.elasticsearch.search.SearchService:TRACE" +) public abstract class ESSingleNodeTestCase extends ESTestCase { private static Node NODE = null;