RFR: 8275185: Remove dead code and clean up jvmstat LocalVmManager
Chris Plummer
cjplummer at openjdk.java.net
Tue Oct 19 22:07:07 UTC 2021
On Wed, 13 Oct 2021 04:17:25 GMT, Ioi Lam <iklam at openjdk.org> wrote:
> LocalVmManager and PerfDataFile have APIs that are supposed to look for VMs owned by a specific user. No one uses these APIs, and they don't work anyway.
>
> The current code is very confusing to look at. Since we're likely to change code in this area for further container support, it's better to clean up the code now.
>
> - Remove all APIs that take a user name
> - Also removed PerfDataFile.getFile() methods that are unused
> - Cleaned up the code that looks up the hsperfdata_xxx files
> - Fix comments to explain what's happening
> - Avoid using Matcher.reset which is not thread-safe
> - Renamed confusing variables such as `userFilter` to make the code more readable
> - LocalVmManager.activeVms() probably doesn't need to be synchronized, but I kept it anyway to avoid unnecessary risks.
>
> Testing with Oracle CI: tiers1-4, plus hs-tier5-rt (which tests containers and have extensive use of the management tools).
src/jdk.internal.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java line 75:
> 73: // 1.4.1 (or earlier?): the files are stored directly under {tmpdir}/ with
> 74: // the following pattern.
> 75: Pattern oldtmpFilePattern = Pattern.compile("^hsperfdata_[0-9]+(_[1-2]+)?$");
So this pattern optionally has `_` followed by a sequence of 1's and 2's at the end? Seems odd.
src/jdk.internal.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java line 105:
> 103:
> 104:
> 105: // 1.4.2 and later: Look for the files {tmpdir}/hsperfdata_{any_user_name}/[0-0]+
should be `[0-9]+`
-------------
PR: https://git.openjdk.java.net/jdk/pull/5923
More information about the serviceability-dev
mailing list