From a76f7b7b793bc61d46bcd58289b1a9b92c3efcba Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 21 Feb 2025 13:18:34 -0500 Subject: [PATCH 1/4] Add log warning if entryKey has multiple prefixIds. --- .../main/java/datadog/trace/bootstrap/AgentJarIndex.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java index 382f8708ac6..688fd32f002 100644 --- a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java +++ b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java @@ -142,6 +142,12 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { if (null != prefixRoot) { String entryKey = computeEntryKey(prefixRoot.relativize(file)); if (null != entryKey) { + if (-1 != prefixTrie.apply(entryKey)) { + log.warn( + "entryKey '{}' has multiple prefixIds: overriding existing prefixId with '{}'.", + entryKey, + prefixId); + } prefixTrie.put(entryKey, prefixId); if (entryKey.endsWith("*")) { // optimization: wildcard will match everything under here so can skip From 117424563ecc988e8b6204c6784a4491672e27d8 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Fri, 21 Feb 2025 14:51:27 -0500 Subject: [PATCH 2/4] Only warn if prefixId changes. --- .../src/main/java/datadog/trace/bootstrap/AgentJarIndex.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java index 688fd32f002..56e10c5daef 100644 --- a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java +++ b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java @@ -142,7 +142,8 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { if (null != prefixRoot) { String entryKey = computeEntryKey(prefixRoot.relativize(file)); if (null != entryKey) { - if (-1 != prefixTrie.apply(entryKey)) { + int existingPrefixId = prefixTrie.apply(entryKey); + if (-1 != existingPrefixId && prefixId != existingPrefixId) { log.warn( "entryKey '{}' has multiple prefixIds: overriding existing prefixId with '{}'.", entryKey, From a96a95cd1bcac19dc93004422f337fafcf5e8469 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Wed, 26 Feb 2025 10:54:26 -0500 Subject: [PATCH 3/4] Improve log warning to describe the situation instead of the state. --- .../src/main/java/datadog/trace/bootstrap/AgentJarIndex.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java index 56e10c5daef..10205a7d85f 100644 --- a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java +++ b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java @@ -145,9 +145,8 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { int existingPrefixId = prefixTrie.apply(entryKey); if (-1 != existingPrefixId && prefixId != existingPrefixId) { log.warn( - "entryKey '{}' has multiple prefixIds: overriding existing prefixId with '{}'.", - entryKey, - prefixId); + "Detected duplicate content under this directory: '{}'. Ensure your content is under a distinct directory.", + entryKey); } prefixTrie.put(entryKey, prefixId); if (entryKey.endsWith("*")) { From 30565d77ecb4e5a91145a2ec7c2e0523e075ffad Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Thu, 27 Feb 2025 08:32:50 -0500 Subject: [PATCH 4/4] Update log warning message. Co-authored-by: Stuart McCulloch --- .../src/main/java/datadog/trace/bootstrap/AgentJarIndex.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java index 10205a7d85f..168c916d994 100644 --- a/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java +++ b/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/AgentJarIndex.java @@ -145,7 +145,7 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { int existingPrefixId = prefixTrie.apply(entryKey); if (-1 != existingPrefixId && prefixId != existingPrefixId) { log.warn( - "Detected duplicate content under this directory: '{}'. Ensure your content is under a distinct directory.", + "Detected duplicate content under '{}'. Ensure your content is under a distinct directory.", entryKey); } prefixTrie.put(entryKey, prefixId);