From cd76457b77eed525cca3a2bbfd669ba8fc1e6d3f Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 8 May 2026 13:25:14 -0400 Subject: [PATCH 1/2] 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/2] 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; }