Mark check raw file injection as @Flaky on Zulu 8#11375
Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits intoMay 15, 2026
Merged
Mark check raw file injection as @Flaky on Zulu 8#11375gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits into
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits into
Conversation
The smoketest fails ~0.25% of the time on Zulu 8 with `logLines.size() == 7` (got 3) — root cause is a JDK 8 race between java.util.logging.LogManager.<clinit> and ClassLoader.initSystemClassLoader() when a JFR-instrumented class (Zulu 8 backports JFR) loads JUL during agent premain. The Agent.java waitForJUL guard mitigates most cases but leaks ~0.25%. The same failure mode already justifies @flaky on Oracle JDK 8 (same JFR backport) and IBM 8 (IBMSASL triggers the same race); Zulu 8 belongs alongside them. This adds JavaVirtualMachine.isZulu8() + a test + extends the @flaky condition. No production code path changes — Zulu 8 users on a custom LogManager (e.g. Log4j2 JUL bridge) are still potentially affected by the underlying agent race; this only suppresses the flaky CI signal.
mhlidd
approved these changes
May 15, 2026
Contributor
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Does This Do
Adds
JavaVirtualMachine.isZulu8()and extends the@Flakycondition onLogInjectionSmokeTest.check raw file injectionto include Zulu 8 alongside IBM 8 and Oracle JDK 8.Motivation
CI Visibility data for the last 30 days shows 23 failures of
check raw file injectionon master, all 100% on Zulu 8 (1.8.0_482 and 1.8.0_492). Failure mode:logLines.size() == 7got3. Spread evenly across the three JUL→Log4j2 backend variants (JULInterfaceLog4j2{Backend,BackendNoTags,LatestBackend}).Root cause analysis: a JDK 8 race between
java.util.logging.LogManager.<clinit>andClassLoader.initSystemClassLoader()when something during agent premain triggersLogManagerclass loading. On Zulu 8 the trigger is the backported JFR's use ofjava.util.loggingfrom premain code paths. The agent's existingwaitForJULguard at Agent.java:382-396 mitigates this most of the time, but leaks at ~0.25% — when the leak fires, the user's-Djava.util.logging.managerproperty is silently ignored and JUL falls back to the defaultLogManager, so subsequentLogger.info(...)calls don't reach Log4j2's appenders.The same failure mode already justifies
@Flakyon Oracle JDK 8 (same JFR backport) and IBM 8 (where OkHttp transitively loads IBMSASL → JUL); Zulu 8 belongs alongside them.Additional Notes
LogManager(Log4j2 JUL bridge, JBoss LogManager, etc.) plus dd-java-agent still experience the same intermittent JUL routing loss. A proper fix inAgent.java(e.g. pre-initializingLogManagerearly in premain, or fully deferring OkHttp/network init out of premain) should follow up.Agent.java:376-379explicitly documents this race) + JDK 8 source review ofLogManager.<clinit>andClassLoader.initSystemClassLoader().Contributor Checklist
type:and (comp:orinst:) labels —type: bug,comp: logging,tag: ai generated,tag: no release notesclose,fix, or any linking keywords when referencing an issueJira ticket: N/A