RFR: 8307526: [JFR] Better handling of tampered JFR repository
Joakim Nordström
jnordstrom at openjdk.org
Wed Jun 7 15:04:42 UTC 2023
This change makes sure that "JFR Periodic Task" isn't interrupted by any errors. This can happen when an unfinished chunkfile is removed "in-flight", which would lead to the chunkfiles not being rotated properly, and the maxsize/maxage being ignored.
With this fix, when an unfinished chunkfile is detected, all of the chunkfiles in the recording are checked for existence (since one likely cause for this could be f.i. 'rm -r /tmp' being invoked, effectively deleting all chunkfiles). Upon seeing missing chunkfiles, an error is logged, and emitted to the recording to signal that some data might be missing.
A check to catch any missing chunkfiles is also added when dumping a recording -- this can happen if only finished chunkfiles have been removed, which is not detected in-flight.
Also, a check was added to the file purger to check whether the file had already been deleted to not fill the purge list with already removed files.
-------------
Commit messages:
- 8307526: [JFR] Better handling of tampered JFR repository
- 8307526: [JFR] Better handling of tampered JFR repository
- 8307526: [JFR] Better handling of tampered JFR repository
- 8307526: [JFR] Better handling of tampered JFR repository
- 8307526: [JFR] Better handling of tampered JFR repository
Changes: https://git.openjdk.org/jdk/pull/14360/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14360&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8307526
Stats: 172 lines in 5 files changed: 137 ins; 11 del; 24 mod
Patch: https://git.openjdk.org/jdk/pull/14360.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14360/head:pull/14360
PR: https://git.openjdk.org/jdk/pull/14360
More information about the hotspot-jfr-dev
mailing list