Repository navigation
Create profiler snapshot and JFR CLI temp files under configured tempdir - #12484
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
Conversation
Snapshot files and the jfr-cli helper's scratch file were created via Files.createTempFile()/File.createTempFile() with no directory argument, which falls back to the JVM default java.io.tmpdir (/tmp). On hardened K8s pods with a read-only root filesystem and only a custom tempdir mounted (dd.profiling.tempdir / FlightRecorderOptions repository), this throws FileSystemException: Read-only file system. Both now go through TempLocationManager-backed locations: snapshots reuse DatadogProfiler's recordingsPath (same dir as regular recordings), and the jfr-cli helper gets its own subdirectory under the managed temp dir. Fixes SCP-1361. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
There was a problem hiding this comment.
More details
Both temporary-file paths now use managed profiling directories. Cleanup still removes the JFR CLI scratch file, and the static review found no concrete failure.
🤖 Datadog Autotest · Commit 74a8927 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
This comment has been minimized.
This comment has been minimized.
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
jbachorik
left a comment
There was a problem hiding this comment.
LGTM! Thanks for fixing this!
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
What Does This Do
Routes profiler snapshot files and the jfr-cli helper's scratch file through TempLocationManager-backed locations instead of the JVM default temp directory:
Motivation
Snapshot files and the jfr-cli helper's scratch file were created via Files.createTempFile()/File.createTempFile() with no directory argument, which falls back to the JVM default java.io.tmpdir (/tmp). On hardened K8s pods with a read-only root filesystem and only a custom tempdir mounted (dd.profiling.tempdir / FlightRecorderOptions repository), this throws:
FileSystemException: Read-only file system
Both now go through TempLocationManager-backed locations: snapshots reuse DatadogProfiler's recordingsPath (same dir as regular recordings), and the jfr-cli helper gets its own subdirectory under the managed temp dir.
Fixes SCP-1361
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: SCP-1361