diff --git a/communication/src/main/java/datadog/communication/ddagent/DDAgentFeaturesDiscovery.java b/communication/src/main/java/datadog/communication/ddagent/DDAgentFeaturesDiscovery.java index 755094cc2e4..2938c6cb06e 100644 --- a/communication/src/main/java/datadog/communication/ddagent/DDAgentFeaturesDiscovery.java +++ b/communication/src/main/java/datadog/communication/ddagent/DDAgentFeaturesDiscovery.java @@ -182,13 +182,16 @@ private void doDiscovery(State newState) { if (log.isDebugEnabled()) { log.debug( - "discovered traceEndpoint={}, metricsEndpoint={}, supportsDropping={}, supportsLongRunning={}, dataStreamsEndpoint={}, configEndpoint={}, evpProxyEndpoint={}, telemetryProxyEndpoint={}", + "discovered traceEndpoint={}, metricsEndpoint={}, supportsDropping={}, supportsLongRunning={}, dataStreamsEndpoint={}, configEndpoint={}, logEndpoint={}, snapshotEndpoint={}, diagnosticsEndpoint={}, evpProxyEndpoint={}, telemetryProxyEndpoint={}", newState.traceEndpoint, newState.metricsEndpoint, newState.supportsDropping, newState.supportsLongRunning, newState.dataStreamsEndpoint, newState.configEndpoint, + newState.debuggerLogEndpoint, + newState.debuggerSnapshotEndpoint, + newState.debuggerDiagnosticsEndpoint, newState.evpProxyEndpoint, newState.telemetryProxyEndpoint); } diff --git a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerAgent.java b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerAgent.java index 2cde2423fa7..cef234b7aa7 100644 --- a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerAgent.java +++ b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerAgent.java @@ -126,7 +126,8 @@ private static boolean commonInit(Config config) { Redaction.addUserDefinedTypes(config); DDAgentFeaturesDiscovery ddAgentFeaturesDiscovery = sharedCommunicationObjects.featuresDiscovery(config); - ddAgentFeaturesDiscovery.discoverIfOutdated(); + // force to discover because commonInit can be retried if previously failed + ddAgentFeaturesDiscovery.discover(); agentVersion = ddAgentFeaturesDiscovery.getVersion(); String diagnosticEndpoint = getDiagnosticEndpoint(config, ddAgentFeaturesDiscovery); ProbeStatusSink probeStatusSink = @@ -152,6 +153,8 @@ private static boolean commonInit(Config config) { return true; } catch (Exception ex) { LOGGER.debug("Failed to init common component for debugger agent", ex); + // reset commonInitDone to be able to retry commonInit next time + commonInitDone.set(false); return false; } } diff --git a/dd-smoke-tests/debugger-integration-tests/src/test/java/datadog/smoketest/BaseIntegrationTest.java b/dd-smoke-tests/debugger-integration-tests/src/test/java/datadog/smoketest/BaseIntegrationTest.java index cc35394a502..931cca819d1 100644 --- a/dd-smoke-tests/debugger-integration-tests/src/test/java/datadog/smoketest/BaseIntegrationTest.java +++ b/dd-smoke-tests/debugger-integration-tests/src/test/java/datadog/smoketest/BaseIntegrationTest.java @@ -592,7 +592,7 @@ protected static boolean logHasErrors(Path logFilePath, Function dispatcher; + private volatile Function dispatcher; @Override public MockResponse dispatch(RecordedRequest request) throws InterruptedException { diff --git a/dd-smoke-tests/debugger-integration-tests/src/test/java/datadog/smoketest/InProductEnablementIntegrationTest.java b/dd-smoke-tests/debugger-integration-tests/src/test/java/datadog/smoketest/InProductEnablementIntegrationTest.java index 5e353642736..5f333e8bfa5 100644 --- a/dd-smoke-tests/debugger-integration-tests/src/test/java/datadog/smoketest/InProductEnablementIntegrationTest.java +++ b/dd-smoke-tests/debugger-integration-tests/src/test/java/datadog/smoketest/InProductEnablementIntegrationTest.java @@ -98,12 +98,15 @@ void testExceptionReplayEnablement() throws Exception { @Test @DisplayName("testExceptionReplayEnablementFailure") void testExceptionReplayEnablementFailure() throws Exception { - additionalJvmArgs.add("-Ddd.symbol.database.upload.enabled=false"); // enabled by default additionalJvmArgs.add("-Ddd.exception.replay.enabled=true"); additionalJvmArgs.add("-Ddd.third.party.excludes=datadog.smoketest"); this.probeMockDispatcher.setDispatcher(this::noEndpointDispatch); appUrl = startAppAndAndGetUrl(); waitForSpecificLine(appUrl, "Failed to init common component for debugger agent"); + probeMockDispatcher.setDispatcher(this::datadogAgentDispatch); + setConfigOverrides(createConfigOverrides(true, true)); + waitForFeatureStarted(appUrl, "Dynamic Instrumentation"); + waitForFeatureStarted(appUrl, "Exception Replay"); } private MockResponse noEndpointDispatch(RecordedRequest request) {