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