On Wed, 13 Oct 2021 04:17:25 GMT, Ioi Lam <[email protected]> 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