From 7ed6a98d3d91c02df8fe225a726941f9bbb1d6b0 Mon Sep 17 00:00:00 2001 From: bm1549 Date: Fri, 20 Mar 2026 16:32:36 -0400 Subject: [PATCH] Fix flaky check raw file injection test in LogInjectionSmokeTest Three bugs contributed to flakiness in CI on JDK 8 variants (zulu8, semeru8) and under load: 1. Copy-paste bug in assertRawLogLinesWithInjection: the fallback assertion for 32-bit trace IDs incorrectly referenced logLines[0] (BEFORE FIRST SPAN) instead of logLines[4] (INSIDE THIRD SPAN) and logLines[6] (AFTER FORTH SPAN). This meant the 32-bit trace ID format was never actually validated for those two log lines. 2. BaseApplication.waitForCondition timeout was 10 seconds. On loaded CI machines with JDK 8 JVMs, the RC config change propagation through captureTraceConfig() could take several seconds, approaching the limit and causing "Logs injection config was never updated" failures. Increased to 30 seconds to give adequate headroom. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- .../java/datadog/smoketest/loginjection/BaseApplication.java | 2 +- .../groovy/datadog/smoketest/LogInjectionSmokeTest.groovy | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dd-smoke-tests/log-injection/src/main/java/datadog/smoketest/loginjection/BaseApplication.java b/dd-smoke-tests/log-injection/src/main/java/datadog/smoketest/loginjection/BaseApplication.java index 4e6b261d213..09b82cd8536 100644 --- a/dd-smoke-tests/log-injection/src/main/java/datadog/smoketest/loginjection/BaseApplication.java +++ b/dd-smoke-tests/log-injection/src/main/java/datadog/smoketest/loginjection/BaseApplication.java @@ -10,7 +10,7 @@ import java.util.function.Supplier; public abstract class BaseApplication { - public static final long TIMEOUT_IN_NANOS = TimeUnit.SECONDS.toNanos(10); + public static final long TIMEOUT_IN_NANOS = TimeUnit.SECONDS.toNanos(30); public abstract void doLog(String message); diff --git a/dd-smoke-tests/log-injection/src/test/groovy/datadog/smoketest/LogInjectionSmokeTest.groovy b/dd-smoke-tests/log-injection/src/test/groovy/datadog/smoketest/LogInjectionSmokeTest.groovy index ae5eb53f6cb..ae1a1de83f7 100644 --- a/dd-smoke-tests/log-injection/src/test/groovy/datadog/smoketest/LogInjectionSmokeTest.groovy +++ b/dd-smoke-tests/log-injection/src/test/groovy/datadog/smoketest/LogInjectionSmokeTest.groovy @@ -231,9 +231,9 @@ abstract class LogInjectionSmokeTest extends AbstractSmokeTest { assert logLines[1].endsWith("- ${tagsPart} ${firstTraceId} ${firstSpanId} - INSIDE FIRST SPAN") assert logLines[2].endsWith("- ${tagsPart} - AFTER FIRST SPAN") || logLines[2].endsWith("- ${tagsPart} 0 0 - AFTER FIRST SPAN") assert logLines[3].endsWith("- ${tagsPart} ${secondTraceId} ${secondSpanId} - INSIDE SECOND SPAN") - assert logLines[4].endsWith("- - INSIDE THIRD SPAN") || logLines[0].endsWith("- 0 0 - INSIDE THIRD SPAN") + assert logLines[4].endsWith("- - INSIDE THIRD SPAN") || logLines[4].endsWith("- 0 0 - INSIDE THIRD SPAN") assert logLines[5].endsWith("- ${tagsPart} ${forthTraceId} ${forthSpanId} - INSIDE FORTH SPAN") - assert logLines[6].endsWith("- ${tagsPart} - AFTER FORTH SPAN") || logLines[0].endsWith("- ${tagsPart} 0 0 - AFTER FORTH SPAN") + assert logLines[6].endsWith("- ${tagsPart} - AFTER FORTH SPAN") || logLines[6].endsWith("- ${tagsPart} 0 0 - AFTER FORTH SPAN") return true }