From cd76457b77eed525cca3a2bbfd669ba8fc1e6d3f Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 8 May 2026 13:25:14 -0400 Subject: [PATCH 1/3] Avoid logging stack trace during expected remote-config exception --- .../java/datadog/remoteconfig/DefaultConfigurationPoller.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java b/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java index 61e5fc88d77..bcf74c9c707 100644 --- a/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java +++ b/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java @@ -378,7 +378,7 @@ private void handleAgentResponse(ResponseBody body) { fleetResponse = maybeFleetResp.get(); } catch (Exception e) { // no error can be reported, as we don't have the data client.state.targets_version avail - ratelimitedLogger.warn("Error parsing remote config response", e); + ratelimitedLogger.warn("Error parsing remote config response: {}", e.toString()); return; } From 0e6bdee66807eb56c7b82fd5ba3dca24509a1a3b Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 8 May 2026 13:33:12 -0400 Subject: [PATCH 2/3] Use e.getMessage for ClosedSelectorExceptions specifically --- .../datadog/remoteconfig/DefaultConfigurationPoller.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java b/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java index bcf74c9c707..ed810270347 100644 --- a/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java +++ b/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java @@ -27,6 +27,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InterruptedIOException; +import java.nio.channels.ClosedSelectorException; import java.nio.file.Files; import java.time.Duration; import java.time.Instant; @@ -378,7 +379,12 @@ private void handleAgentResponse(ResponseBody body) { fleetResponse = maybeFleetResp.get(); } catch (Exception e) { // no error can be reported, as we don't have the data client.state.targets_version avail - ratelimitedLogger.warn("Error parsing remote config response: {}", e.toString()); + if (e instanceof ClosedSelectorException) { + // expected when the selector is closed mid-poll, e.g. during pod shutdown + ratelimitedLogger.warn("Error parsing remote config response: {}", e.getMessage()); + } else { + ratelimitedLogger.warn("Error parsing remote config response", e); + } return; } From 7b52f0be0935bcfd09020100a8d1bce9115126f0 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Mon, 8 Jun 2026 17:15:51 +0200 Subject: [PATCH 3/3] Clarify expectation in comment --- .../java/datadog/remoteconfig/DefaultConfigurationPoller.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java b/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java index ed810270347..76ef06740b7 100644 --- a/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java +++ b/remote-config/remote-config-core/src/main/java/datadog/remoteconfig/DefaultConfigurationPoller.java @@ -381,7 +381,9 @@ private void handleAgentResponse(ResponseBody body) { // no error can be reported, as we don't have the data client.state.targets_version avail if (e instanceof ClosedSelectorException) { // expected when the selector is closed mid-poll, e.g. during pod shutdown - ratelimitedLogger.warn("Error parsing remote config response: {}", e.getMessage()); + ratelimitedLogger.warn( + "Error parsing remote config response, which is expected when the selector is closed mid-poll: {}", + e.getMessage()); } else { ratelimitedLogger.warn("Error parsing remote config response", e); }