From 0dec400ebc37c923f2e432eb0e2e4a46b9f9951a Mon Sep 17 00:00:00 2001 From: Ignacio Vera Date: Mon, 17 Mar 2025 17:29:12 +0100 Subject: [PATCH] [8.17] Don't generate stacktrace in TaskCancelledException (#125002) (#125031) * Don't generate stacktrace in TaskCancelledException (#125002) # Conflicts: # modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/SearchCancellationIT.java * [CI] Auto commit changes from spotless --------- Co-authored-by: elasticsearchmachine --- docs/changelog/125002.yaml | 5 +++++ .../aggregations/bucket/SearchCancellationIT.java | 5 ++++- .../java/org/elasticsearch/tasks/TaskCancelledException.java | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 docs/changelog/125002.yaml diff --git a/docs/changelog/125002.yaml b/docs/changelog/125002.yaml new file mode 100644 index 000000000000..6b811cc80f51 --- /dev/null +++ b/docs/changelog/125002.yaml @@ -0,0 +1,5 @@ +pr: 125002 +summary: Don't generate stacktrace in `TaskCancelledException` +area: Search +type: bug +issues: [] diff --git a/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/SearchCancellationIT.java b/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/SearchCancellationIT.java index 5249077bdfdb..117dac0c486b 100644 --- a/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/SearchCancellationIT.java +++ b/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/SearchCancellationIT.java @@ -42,6 +42,7 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcke import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.not; public class SearchCancellationIT extends AbstractSearchCancellationTestCase { @@ -124,7 +125,9 @@ public class SearchCancellationIT extends AbstractSearchCancellationTestCase { logger.info("All shards failed with", ex); if (lowLevelCancellation) { // Ensure that we cancelled in TimeSeriesIndexSearcher and not in reduce phase - assertThat(ExceptionsHelper.stackTrace(ex), containsString("TimeSeriesIndexSearcher")); + assertThat(ExceptionsHelper.stackTrace(ex), not(containsString("not building sub-aggregations due to task cancellation"))); + } else { + assertThat(ExceptionsHelper.stackTrace(ex), containsString("not building sub-aggregations due to task cancellation")); } } } diff --git a/server/src/main/java/org/elasticsearch/tasks/TaskCancelledException.java b/server/src/main/java/org/elasticsearch/tasks/TaskCancelledException.java index 81c7bec678b3..4a56e96aa3f3 100644 --- a/server/src/main/java/org/elasticsearch/tasks/TaskCancelledException.java +++ b/server/src/main/java/org/elasticsearch/tasks/TaskCancelledException.java @@ -27,6 +27,11 @@ public class TaskCancelledException extends ElasticsearchException { super(in); } + @Override + public Throwable fillInStackTrace() { + return this; // this exception doesn't imply a bug, no need for a stack trace + } + @Override public RestStatus status() { // Tasks are typically cancelled at the request of the client, so a 4xx status code is more accurate than the default of 500 (and