Skip to content

JAIPilot campaign evaluation: DataDog/dd-trace-java #12254 - #1

Open
skrcode wants to merge 2 commits into
jaipilot-campaign/dd-trace-java-12254-basefrom
jaipilot-campaign/dd-trace-java-12254-head
Open

JAIPilot campaign evaluation: DataDog/dd-trace-java #12254#1
skrcode wants to merge 2 commits into
jaipilot-campaign/dd-trace-java-12254-basefrom
jaipilot-campaign/dd-trace-java-12254-head

Conversation

@skrcode

@skrcode skrcode commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Exact cloud-only evaluation mirror of DataDog#12254

Exact upstream head: a882216

JAIPilot must return at most one small, behavior-preserving, independently provable companion draft or leave this PR unchanged. No repository build is being run on a developer laptop.

HotSpot JVM has a special optimization when some special exceptions
are (implicitly) thrown like NullPointerException.
The JIT will replace a throw with a newly created Exception that
walk the stack to produce the stacktrace by a throw with a singleton
instance of the exception without stacktrace.
This singleton exception is kept forever by the JVm contrary to usual
way to throw exception to create the object at location of the
exception.
Therefore the map snapshotsByThrowable in ExceptionProbeManager which
maps Exception instance to ThrowableState object keep an instance
forever with the along snapshots collected.
At some point the number of snapshots kept can lead to OOME.

The fix is to clear the snapshot list after sending the snapshot and
tagging the span. We also add a cap to the number of snapshots (256)
added to the ThrowableState object.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants