diff --git a/.circleci/config.continue.yml.j2 b/.circleci/config.continue.yml.j2 index 586de334a68..fcb73477800 100644 --- a/.circleci/config.continue.yml.j2 +++ b/.circleci/config.continue.yml.j2 @@ -36,7 +36,7 @@ instrumentation_modules: &instrumentation_modules "dd-java-agent/instrumentation debugger_modules: &debugger_modules "dd-java-agent/agent-debugger|dd-java-agent/agent-bootstrap|dd-java-agent/agent-builder|internal-api|communication|dd-trace-core" profiling_modules: &profiling_modules "dd-java-agent/agent-profiling" -default_system_tests_commit: &default_system_tests_commit 8b05076e897fe62206d7704f2e8e650ed83ebd1f +default_system_tests_commit: &default_system_tests_commit c706e333ef06800b866ac300e4b6cdb7566cc5e5 parameters: nightly: diff --git a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/DefaultExceptionDebugger.java b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/DefaultExceptionDebugger.java index 3c3bb225ca2..2d4b2dd5fe5 100644 --- a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/DefaultExceptionDebugger.java +++ b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/DefaultExceptionDebugger.java @@ -158,10 +158,13 @@ private static void processSnapshotsAndSetTags( String tagName = String.format(SNAPSHOT_ID_TAG_FMT, frameIndex); span.setTag(tagName, snapshot.getId()); LOGGER.debug("add tag to span[{}]: {}: {}", span.getSpanId(), tagName, snapshot.getId()); - DebuggerAgent.getSink().addSnapshot(snapshot); + if (!state.isSnapshotSent()) { + DebuggerAgent.getSink().addSnapshot(snapshot); + } snapshotAssigned = true; } if (snapshotAssigned) { + state.markAsSnapshotSent(); span.setTag(DD_DEBUG_ERROR_EXCEPTION_ID, state.getExceptionId()); LOGGER.debug( "add tag to span[{}]: {}: {}", diff --git a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/ExceptionProbeManager.java b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/ExceptionProbeManager.java index b37708a3252..7b68b69afce 100644 --- a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/ExceptionProbeManager.java +++ b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/ExceptionProbeManager.java @@ -183,6 +183,7 @@ boolean hasExceptionStateTracked() { public static class ThrowableState { private final String exceptionId; private List snapshots; + private boolean snapshotSent; private ThrowableState(String exceptionId) { this.exceptionId = exceptionId; @@ -206,5 +207,13 @@ public void addSnapshot(Snapshot snapshot) { } snapshots.add(snapshot); } + + public boolean isSnapshotSent() { + return snapshotSent; + } + + public void markAsSnapshotSent() { + snapshotSent = true; + } } }