On Wed, 13 Oct 2021 04:17:25 GMT, Ioi Lam <ik...@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

Reply via email to