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