Skip to content

Upgrade JNA to 5.19.1 and remove unused platform bindings - #13016

Draft
mcculls wants to merge 1 commit into
masterfrom
mcculls/upgrade-jna-5.19.1
Draft

mcculls wants to merge 1 commit into
masterfrom
mcculls/upgrade-jna-5.19.1

Conversation

@mcculls

@mcculls mcculls commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

What Does This Do

Upgrade JNA core from 5.8.0 to 5.19.1 through a shared version-catalog entry and remove the unused jna-platform dependency from the installer and CWS modules. Refresh the affected JNA lock entries.

Motivation

Keep the native-call dependency current while remaining below the existing 34 MiB agent-jar limit. The assembled jar is 32.71 MiB after removing the platform bindings. Our native code uses its own JNA interfaces; the remaining platform references are confined to Byte Buddy's unused Windows attach implementations.

Additional Notes

  • Preserve the nine supported native-library targets and exclude the newly supplied DragonFlyBSD and LoongArch binaries. Verified the packaged JNI binaries match JNA 5.19.1.
  • Java 8 remains supported; no source API migration is required. Add a regression test that allocates and closes native memory through the packaged agent's classloader, exercising JNI loading, cleanup, and logging rewrites.
  • Retain the 34 MiB size budget; adjust only the class-count guard and its existing comment's counts for the removed bindings.
  • Regenerated 985 affected configurations across 470 modules and retained only JNA lock changes. Aligned the optional Akka 10.6 module's JNA entries separately because its private repository requires credentials.

Validation:

  • Installer tests: 119 tests, no failures; two Linux-only tests skipped on macOS ARM64.
  • CWS tests: three tests passed; packaged JNA class-loading regression test passed.
  • Packaged native-memory probes passed on Java 8, 11, 17, 21, and 25. Java 25 also passed with --illegal-native-access=deny --enable-native-access=ALL-UNNAMED.
  • Agent-jar structural verification and Spotless checks passed; ran Spotless apply before committing.

Contributor Checklist

  • Imperative PR title and component/type labels
  • Include affected dependency lockfiles
  • Format changed sources and build scripts
  • Existing CODEOWNERS coverage applies to the new class-loading test

@mcculls mcculls added comp: core Tracer core tag: no release notes Changes to exclude from release notes type: refactoring comp: cws Cloud Workload Security (CWS) tag: ai generated Largely based on code generated by an AI or LLM labels Oct 23, 2026
@datadog-official

datadog-official Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

🎯 Code Coverage (details)
• Patch Coverage: 100.00%
• Overall Coverage: 59.87% (+0.01%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 469515f | Docs | Give us feedback!

@pr-commenter

pr-commenter Bot commented Oct 23, 2026

Copy link
Copy Markdown

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1792764102 1792764429
end_time 2026-10-23T14:03:09 2026-10-23T14:08:36
git_branch master mcculls/upgrade-jna-5.19.1
git_commit_sha 54903d7 469515f
start_time 2026-10-23T14:01:43 2026-10-23T14:07:09
See matching parameters
Baseline Candidate
ci_job_id 2170463313 2170463313
ci_pipeline_id 147071059 147071059
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1792763360 1792763360

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 9 metrics, 6 unstable metrics.

See unchanged results
scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:noprobe unstable
[-50.968µs; +84.896µs] or [-15.714%; +26.175%]
unstable
[-65.495µs; +107.104µs] or [-18.276%; +29.886%]
unstable
[-123.267µs; +291.104µs] or [-33.055%; +78.061%]
unstable
[-424.634µs; +763.576µs] or [-33.141%; +59.594%]
same
scenario:basic same same same unstable
[-94.635µs; +173.589µs] or [-8.719%; +15.993%]
unstable
[-213.274op/s; +107.566op/s] or [-9.171%; +4.625%]
scenario:loop same same same same same
Request duration reports for reports
gantt
    title reports - request duration [CI 0.99] : candidate=None, baseline=None
    dateFormat X
    axisFormat %s
section baseline
noprobe (358.37 µs) : 300, 416
.   : milestone, 358,
basic (326.315 µs) : 321, 332
.   : milestone, 326,
loop (8.091 ms) : 8028, 8154
.   : milestone, 8091,
section candidate
noprobe (379.175 µs) : 279, 480
.   : milestone, 379,
basic (329.817 µs) : 321, 339
.   : milestone, 330,
loop (8.105 ms) : 8041, 8169
.   : milestone, 8105,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 358.37 µs [300.429 µs, 416.311 µs]
basic 326.315 µs [321.016 µs, 331.613 µs]
loop 8.091 ms [8.028 ms, 8.154 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 379.175 µs [278.723 µs, 479.627 µs]
basic 329.817 µs [321.049 µs, 338.586 µs]
loop 8.105 ms [8.041 ms, 8.169 ms]

@dd-octo-sts

dd-octo-sts Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 13.92 s 13.92 s [-0.6%; +0.7%] (no difference)
startup:insecure-bank:tracing:Agent 12.88 s 12.96 s [-1.3%; -0.0%] (maybe better)
startup:petclinic:appsec:Agent 17.18 s 17.22 s [-1.1%; +0.6%] (no difference)
startup:petclinic:iast:Agent 16.92 s 17.10 s [-1.8%; -0.3%] (maybe better)
startup:petclinic:profiling:Agent 16.90 s 16.63 s [+0.5%; +2.7%] (maybe worse)
startup:petclinic:sca:Agent 17.16 s 17.04 s [-0.2%; +1.5%] (no difference)
startup:petclinic:tracing:Agent 16.25 s 16.20 s [-0.5%; +1.1%] (no difference)

Commit: 469515f0 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@pr-commenter

pr-commenter Bot commented Oct 23, 2026

Copy link
Copy Markdown

Kafka / producer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/upgrade-jna-5.19.1
git_commit_date 1792760873 1792763360
git_commit_sha 54903d7 469515f
See matching parameters
Baseline Candidate
ci_job_date 1792764613 1792764613
ci_job_id 2170463309 2170463309
ci_pipeline_id 147071059 147071059
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.31 11.0.31
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=15002 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=15002 -Dhttp.nonProxyHosts=localhost *.localhost
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-031qjf1s 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-031qjf1s 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics.

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaProduceBenchmark.benchProduce unsure
[-65893.581op/s; -8576.404op/s] or [-3.586%; -0.467%]
scenario:only-tracing-dsm-disabled-benchmarks/KafkaProduceBenchmark.benchProduce same
scenario:only-tracing-dsm-enabled-benchmarks/KafkaProduceBenchmark.benchProduce same

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: core Tracer core comp: cws Cloud Workload Security (CWS) tag: ai generated Largely based on code generated by an AI or LLM tag: no release notes Changes to exclude from release notes type: refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants