From hirt at openjdk.java.net Sun Nov 1 00:07:51 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Sun, 1 Nov 2020 00:07:51 GMT Subject: RFR: 4819: Improved tooltips and context menus for Stack Trace View [v5] In-Reply-To: References: Message-ID: On Sat, 31 Oct 2020 23:42:03 GMT, Miroslav Wengner wrote: >> bug fix: https://bugs.openjdk.java.net/browse/JMC-4819 tooltips >> >> I'd propose, if not created yet, to create a ticket according to the correct behaviour of Stacktrace when treeView is selected (enabled/disabled) and switching over branches with enabled/disabled "Layout Option -> Reduce Tree Depth". Also when the current setup us saved and JMC reopened. > > Miroslav Wengner has updated the pull request incrementally with one additional commit since the last revision: > > 4819: clean Marked as reviewed by hirt (Lead). ------------- PR: https://git.openjdk.java.net/jmc/pull/140 From mwengner at openjdk.java.net Sun Nov 1 00:10:50 2020 From: mwengner at openjdk.java.net (Miroslav Wengner) Date: Sun, 1 Nov 2020 00:10:50 GMT Subject: Integrated: 4819: Improved tooltips and context menus for Stack Trace View In-Reply-To: References: Message-ID: On Mon, 26 Oct 2020 17:20:53 GMT, Miroslav Wengner wrote: > bug fix: https://bugs.openjdk.java.net/browse/JMC-4819 tooltips > > I'd propose, if not created yet, to create a ticket according to the correct behaviour of Stacktrace when treeView is selected (enabled/disabled) and switching over branches with enabled/disabled "Layout Option -> Reduce Tree Depth". Also when the current setup us saved and JMC reopened. This pull request has now been integrated. Changeset: c46360e9 Author: Miroslav Wengner URL: https://git.openjdk.java.net/jmc/commit/c46360e9 Stats: 21 lines in 6 files changed: 9 ins; 0 del; 12 mod 4819: Improved tooltips and context menus for Stack Trace View Reviewed-by: hirt ------------- PR: https://git.openjdk.java.net/jmc/pull/140 From hirt at openjdk.java.net Sun Nov 1 00:13:51 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Sun, 1 Nov 2020 00:13:51 GMT Subject: RFR: 6945: Create build script for Windows [v3] In-Reply-To: <-aKfY_qGbgNPp6goqAsqjtPMDdNwyhttev2Y6uylEkE=.13b5d7d6-b63a-468a-aa62-8e37b4f7fa6d@github.com> References: <_ULuLyYiukK8s2-17y-tdbCj9WYJYTnrwTEf1Cz8Pqk=.64cb1dbf-437d-45f4-9037-3f5550f07cdc@github.com> <-aKfY_qGbgNPp6goqAsqjtPMDdNwyhttev2Y6uylEkE=.13b5d7d6-b63a-468a-aa62-8e37b4f7fa6d@github.com> Message-ID: On Sat, 31 Oct 2020 10:14:12 GMT, Jean-Philippe Bempel wrote: >> Let me check on Windows build and update my comments. > > @thegreystone I was afraid of that, but the way I generate a timestamp for the log files is fragile as it relies on date expressed in us format from `%date%` env var. > I need to find another way... :-/ Looks good! Might want to add *.log to the .gitignore. ------------- PR: https://git.openjdk.java.net/jmc/pull/147 From github.com+4610701+jpbempel at openjdk.java.net Sun Nov 1 07:41:06 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Sun, 1 Nov 2020 07:41:06 GMT Subject: RFR: 6945: Create build script for Windows [v4] In-Reply-To: References: Message-ID: > Build script for windows mimics behavior of the *nix one > > Special handling for Jetty server with killing it at the end of the action Jean-Philippe Bempel has updated the pull request incrementally with one additional commit since the last revision: add *.log in gitignore ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/147/files - new: https://git.openjdk.java.net/jmc/pull/147/files/3fe41846..4a773598 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=147&range=03 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=147&range=02-03 Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 mod Patch: https://git.openjdk.java.net/jmc/pull/147.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/147/head:pull/147 PR: https://git.openjdk.java.net/jmc/pull/147 From github.com+28612+gunnarmorling at openjdk.java.net Sun Nov 1 09:44:50 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Sun, 1 Nov 2020 09:44:50 GMT Subject: RFR: 6961: Fix rules test In-Reply-To: References: Message-ID: On Sat, 31 Oct 2020 23:25:28 GMT, Marcus Hirt wrote: > Setting a fixed timezone so that the tests don't fail locally. Strange that this happened all of a sudden though. LGTM. Perhaps use an odd timezone though for testing instead (e.g. "Australia/Canberra"), so to reveal any hidden assumptions based on the assumption of UTC? Re sudden failure, if I'd have to guess, perhaps related to so DST change? ------------- PR: https://git.openjdk.java.net/jmc/pull/151 From hirt at openjdk.java.net Sun Nov 1 14:47:50 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Sun, 1 Nov 2020 14:47:50 GMT Subject: RFR: 6961: Fix rules test In-Reply-To: References: Message-ID: <3OWDc8ADFGnZj5HOIW55vy6QPydRxGfmtjD07zA7pY8=.baa54d53-a135-4571-b714-176d61eac33e@github.com> On Sun, 1 Nov 2020 09:42:26 GMT, Gunnar Morling wrote: >> Setting a fixed timezone so that the tests don't fail locally. Strange that this happened all of a sudden though. > > LGTM. Perhaps use an odd timezone though for testing instead (e.g. "Australia/Canberra"), so to reveal any hidden assumptions based on the assumption of UTC? Re sudden failure, if I'd have to guess, perhaps related to so DST change? Good point, but this was the smallest possible change making stuff buildable for me again. I oon't think it was purely DST related, since the time difference between expected and actual was too large. ------------- PR: https://git.openjdk.java.net/jmc/pull/151 From ghb at openjdk.java.net Sun Nov 1 17:16:51 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Sun, 1 Nov 2020 17:16:51 GMT Subject: Integrated: 6960: Update Copyright year and Welcome page In-Reply-To: References: Message-ID: On Sat, 31 Oct 2020 07:32:32 GMT, Guru Hb wrote: > Fix contains : > 1. Updating Copy right year > 2. Copyright notice should now show "All rights reserved." (Text shows in JMC application -- About box, License detail etc.. and not in the source header). > 3. JOverflow was listed as addition / optional plugin , which is not true any more as it is distributed along with jmc product. > 4. Few html page had missing "JDK" prefix for "mission control". which is now shown as "JDK mission control" instead of "mission control" This pull request has now been integrated. Changeset: 3ba820c8 Author: Guru Hb URL: https://git.openjdk.java.net/jmc/commit/3ba820c8 Stats: 121 lines in 39 files changed: 0 ins; 43 del; 78 mod 6960: Update Copyright year and Welcome page Reviewed-by: hirt ------------- PR: https://git.openjdk.java.net/jmc/pull/149 From github.com+4610701+jpbempel at openjdk.java.net Sun Nov 1 21:32:56 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Sun, 1 Nov 2020 21:32:56 GMT Subject: RFR: 5604: Check bytecode verification flags Message-ID: look into JAVA_ARGUMENTS attribute add also tests ------------- Commit messages: - 5604: Check bytecode verification flags Changes: https://git.openjdk.java.net/jmc/pull/153/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=153&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-5604 Stats: 169 lines in 4 files changed: 166 ins; 0 del; 3 mod Patch: https://git.openjdk.java.net/jmc/pull/153.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/153/head:pull/153 PR: https://git.openjdk.java.net/jmc/pull/153 From github.com+28612+gunnarmorling at openjdk.java.net Mon Nov 2 07:39:58 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Mon, 2 Nov 2020 07:39:58 GMT Subject: RFR: 9999: Automatically open base module for accessing Unsafe on JDK 11+ Message-ID: So here's a fresh take on the `Unsafe` / `add-opens` issue for JMC Agent. This still is using `Unsafe`, but I'm using the instrumentation API for opening up the base module within the agent itself, instead of requiring the user to do so. Ideally, we'd still get away from `Unsafe`, but this make the agent easier to use. This is still a draft, would do some more polishing if you all think it's the right approach. Feedback welcome! ------------- Commit messages: - 9999: Automatically open base module for accessing Unsafe on JDK 11+ Changes: https://git.openjdk.java.net/jmc/pull/152/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=152&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-9999 Stats: 135 lines in 3 files changed: 125 ins; 0 del; 10 mod Patch: https://git.openjdk.java.net/jmc/pull/152.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/152/head:pull/152 PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Mon Nov 2 07:39:58 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Mon, 2 Nov 2020 07:39:58 GMT Subject: RFR: 9999: Automatically open base module for accessing Unsafe on JDK 11+ In-Reply-To: References: Message-ID: <0ZWS2osOQreDkM30RMPDEX5Or2OIqGveIJsxU1xKvQc=.21e9f943-e8b0-4bd2-a8f4-c9b51c413057@github.com> On Sun, 1 Nov 2020 09:57:57 GMT, Gunnar Morling wrote: > So here's a fresh take on the `Unsafe` / `add-opens` issue for JMC Agent. This still is using `Unsafe`, but I'm using the instrumentation API for opening up the base module within the agent itself, instead of requiring the user to do so. Ideally, we'd still get away from `Unsafe`, but this make the agent easier to use. This is still a draft, would do some more polishing if you all think it's the right approach. Feedback welcome! Note that based on this I think it should also be possible to obtain a `MethodHandles.Lookup` with the private access in target packages which is required for using the publicly supported `MethodHandles` API instead of `Unsafe`. ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Mon Nov 2 07:39:59 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Mon, 2 Nov 2020 07:39:59 GMT Subject: RFR: 9999: Automatically open base module for accessing Unsafe on JDK 11+ In-Reply-To: <0ZWS2osOQreDkM30RMPDEX5Or2OIqGveIJsxU1xKvQc=.21e9f943-e8b0-4bd2-a8f4-c9b51c413057@github.com> References: <0ZWS2osOQreDkM30RMPDEX5Or2OIqGveIJsxU1xKvQc=.21e9f943-e8b0-4bd2-a8f4-c9b51c413057@github.com> Message-ID: On Sun, 1 Nov 2020 10:00:41 GMT, Gunnar Morling wrote: >> So here's a fresh take on the `Unsafe` / `add-opens` issue for JMC Agent. This still is using `Unsafe`, but I'm using the instrumentation API for opening up the base module within the agent itself, instead of requiring the user to do so. Ideally, we'd still get away from `Unsafe`, but this make the agent easier to use. This is still a draft, would do some more polishing if you all think it's the right approach. Feedback welcome! > > Note that based on this I think it should also be possible to obtain a `MethodHandles.Lookup` with the private access in target packages which is required for using the publicly supported `MethodHandles` API instead of `Unsafe`. @thegreystone, so that's ready for review from my PoV. While not removing the need for `Unsafe` on JDK 11+ (there's my other WIP PR for that), it's a good intermediary improvement over the current situation, as it avoids the need for the user to specify the `--add-opens` option themselves. Could you log an issue so I can reference it in the commit message? Thanks! ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From mwengner at openjdk.java.net Mon Nov 2 09:56:52 2020 From: mwengner at openjdk.java.net (Miroslav Wengner) Date: Mon, 2 Nov 2020 09:56:52 GMT Subject: RFR: 6961: Fix rules test In-Reply-To: <3OWDc8ADFGnZj5HOIW55vy6QPydRxGfmtjD07zA7pY8=.baa54d53-a135-4571-b714-176d61eac33e@github.com> References: <3OWDc8ADFGnZj5HOIW55vy6QPydRxGfmtjD07zA7pY8=.baa54d53-a135-4571-b714-176d61eac33e@github.com> Message-ID: On Sun, 1 Nov 2020 14:45:12 GMT, Marcus Hirt wrote: >> LGTM. Perhaps use an odd timezone though for testing instead (e.g. "Australia/Canberra"), so to reveal any hidden assumptions based on the assumption of UTC? Re sudden failure, if I'd have to guess, perhaps related to so DST change? > > Good point, but this was the smallest possible change making stuff buildable for me again. I oon't think it was purely DST related, since the time difference between expected and actual was too large. how can I approve it ? it's a minimal change ------------- PR: https://git.openjdk.java.net/jmc/pull/151 From ghb at openjdk.java.net Mon Nov 2 10:50:53 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Mon, 2 Nov 2020 10:50:53 GMT Subject: RFR: 6961: Fix rules test In-Reply-To: References: Message-ID: On Sat, 31 Oct 2020 23:25:28 GMT, Marcus Hirt wrote: > Setting a fixed timezone so that the tests don't fail locally. Strange that this happened all of a sudden though. Tested on Mac and windows where these were failing earlier. ------------- Marked as reviewed by ghb (Reviewer). PR: https://git.openjdk.java.net/jmc/pull/151 From hirt at openjdk.java.net Mon Nov 2 12:16:56 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 2 Nov 2020 12:16:56 GMT Subject: Integrated: 6961: Fix rules test In-Reply-To: References: Message-ID: On Sat, 31 Oct 2020 23:25:28 GMT, Marcus Hirt wrote: > Setting a fixed timezone so that the tests don't fail locally. Strange that this happened all of a sudden though. This pull request has now been integrated. Changeset: a449bec4 Author: Marcus Hirt URL: https://git.openjdk.java.net/jmc/commit/a449bec4 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod 6961: Fix rules test Reviewed-by: ghb ------------- PR: https://git.openjdk.java.net/jmc/pull/151 From ghb at openjdk.java.net Mon Nov 2 16:35:54 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Mon, 2 Nov 2020 16:35:54 GMT Subject: RFR: 6945: Create build script for Windows [v4] In-Reply-To: References: Message-ID: On Sun, 1 Nov 2020 07:41:06 GMT, Jean-Philippe Bempel wrote: >> Build script for windows mimics behavior of the *nix one >> >> Special handling for Jetty server with killing it at the end of the action > > Jean-Philippe Bempel has updated the pull request incrementally with one additional commit since the last revision: > > add *.log in gitignore Looks good to me, Verified on windows 10. This is good to start using simplified batch file to use JMC. We can have a follow on bug fix for improvement , If there is an existing jetty , this happens 1. more often in the jenkins where the build get's hung and main process will be terminated but jetty process will be still running 2. Some times we keep this jetty running to make sure dependency are reachable to eclipse. During this time the jetty process launched from batch file will fail (as we can see from log file). ------------- Marked as reviewed by ghb (Reviewer). PR: https://git.openjdk.java.net/jmc/pull/147 From github.com+4610701+jpbempel at openjdk.java.net Mon Nov 2 20:04:52 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Mon, 2 Nov 2020 20:04:52 GMT Subject: RFR: 6945: Create build script for Windows [v4] In-Reply-To: References: Message-ID: On Mon, 2 Nov 2020 16:33:33 GMT, Guru Hb wrote: >> Jean-Philippe Bempel has updated the pull request incrementally with one additional commit since the last revision: >> >> add *.log in gitignore > > Looks good to me, Verified on windows 10. > This is good to start using simplified batch file to use JMC. > > We can have a follow on bug fix for improvement , If there is an existing jetty , this happens > 1. more often in the jenkins where the build get's hung and main process will be terminated but jetty process will be still running > 2. Some times we keep this jetty running to make sure dependency are reachable to eclipse. During this time the jetty process launched from batch file will fail (as we can see from log file). @guruhb do you want to create related jira for improving both scripts regarding already running Jetty? ------------- PR: https://git.openjdk.java.net/jmc/pull/147 From github.com+4610701+jpbempel at openjdk.java.net Mon Nov 2 20:43:51 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Mon, 2 Nov 2020 20:43:51 GMT Subject: Integrated: 6945: Create build script for Windows In-Reply-To: References: Message-ID: On Fri, 30 Oct 2020 21:22:26 GMT, Jean-Philippe Bempel wrote: > Build script for windows mimics behavior of the *nix one > > Special handling for Jetty server with killing it at the end of the action This pull request has now been integrated. Changeset: d28f6846 Author: Jean-Philippe Bempel Committer: Marcus Hirt URL: https://git.openjdk.java.net/jmc/commit/d28f6846 Stats: 141 lines in 2 files changed: 141 ins; 0 del; 0 mod 6945: Create build script for Windows Reviewed-by: ghb ------------- PR: https://git.openjdk.java.net/jmc/pull/147 From hirt at openjdk.java.net Mon Nov 2 20:47:52 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 2 Nov 2020 20:47:52 GMT Subject: RFR: 5604: Check bytecode verification flags In-Reply-To: References: Message-ID: On Sun, 1 Nov 2020 21:27:20 GMT, Jean-Philippe Bempel wrote: > look into JAVA_ARGUMENTS attribute > add also tests Changes requested by hirt (Lead). core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/general/VerifyNoneRule.java line 35: > 33: package org.openjdk.jmc.flightrecorder.rules.jdk.general; > 34: > 35: import java.text.MessageFormat; Copyright year should be updated to 2018, 2020. ------------- PR: https://git.openjdk.java.net/jmc/pull/153 From hdafgard at openjdk.java.net Mon Nov 2 21:51:52 2020 From: hdafgard at openjdk.java.net (Henrik =?UTF-8?B?RGFmZ8OlcmQ=?=) Date: Mon, 2 Nov 2020 21:51:52 GMT Subject: RFR: 6948: Add union to QuantityRange [v2] In-Reply-To: References: Message-ID: <53dACavxPx1OhtErVfLtK3EYnQn4WFrLWpn0La2qsFo=.7201ad33-06f1-4651-979d-ba87869cbc73@github.com> On Sat, 31 Oct 2020 22:16:01 GMT, Jean-Philippe Bempel wrote: >> Add tests for intersetion & union > > Jean-Philippe Bempel has updated the pull request incrementally with one additional commit since the last revision: > > add license header core/org.openjdk.jmc.common/src/main/java/org/openjdk/jmc/common/unit/QuantityRange.java line 250: > 248: if (intersection(a, b) == null) { // if disjoint, no union > 249: return null; > 250: } Could we do this without potentially allocating a new QuantityRange object here? I.e. if the ranges intersect we'll allocate a new IRange just for a null check. ------------- PR: https://git.openjdk.java.net/jmc/pull/150 From github.com+4610701+jpbempel at openjdk.java.net Mon Nov 2 21:53:02 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Mon, 2 Nov 2020 21:53:02 GMT Subject: RFR: 5604: Check bytecode verification flags [v2] In-Reply-To: References: Message-ID: > look into JAVA_ARGUMENTS attribute > add also tests Jean-Philippe Bempel has updated the pull request incrementally with one additional commit since the last revision: fix copyright year ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/153/files - new: https://git.openjdk.java.net/jmc/pull/153/files/8a3acd38..224c397c Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=153&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=153&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.java.net/jmc/pull/153.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/153/head:pull/153 PR: https://git.openjdk.java.net/jmc/pull/153 From ghb at openjdk.java.net Tue Nov 3 03:38:51 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Tue, 3 Nov 2020 03:38:51 GMT Subject: RFR: 9999: Automatically open base module for accessing Unsafe on JDK 11+ In-Reply-To: References: <0ZWS2osOQreDkM30RMPDEX5Or2OIqGveIJsxU1xKvQc=.21e9f943-e8b0-4bd2-a8f4-c9b51c413057@github.com> Message-ID: On Mon, 2 Nov 2020 07:36:29 GMT, Gunnar Morling wrote: >> Note that based on this I think it should also be possible to obtain a `MethodHandles.Lookup` with the private access in target packages which is required for using the publicly supported `MethodHandles` API instead of `Unsafe`. > > @thegreystone, so that's ready for review from my PoV. > > While not removing the need for `Unsafe` on JDK 11+ (there's my other WIP PR for that), it's a good intermediary improvement over the current situation, as it avoids the need for the user to specify the `--add-opens` option themselves. Could you log an issue so I can reference it in the commit message? Thanks! Please change title of this pull request matching to https://bugs.openjdk.java.net/browse/JMC-6964 ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From ghb at openjdk.java.net Tue Nov 3 03:42:53 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Tue, 3 Nov 2020 03:42:53 GMT Subject: RFR: 6364: Improvements to the Thread Graph [v6] In-Reply-To: References: <3b_EN291IWMTMl6vId_3HM3r9b2p0Bjxd9QYH5qgDO8=.50cc047a-4486-469a-a341-5908f78bb6df@github.com> Message-ID: On Thu, 29 Oct 2020 17:15:58 GMT, Alex Macdonald wrote: >> This patch addresses JMC-6364 [[0]](https://bugs.openjdk.java.net/browse/JMC-6364), the epic for tracking Improvements to the JFR Thread Graph. This RFR is also a follow-up to an RFC [[1]](http://mail.openjdk.java.net/pipermail/jmc-dev/2019-October/001454.html) that was posted to the jmc-dev list and incorporates the feedback that was brought up during discussion. >> >> The new design and features was imagined in collaboration with our UX team, and the implementation has been a joint effort between myself and Jessye (@jessyec-s) - we had been originally collaborating on a fork of the old (unofficial) JMC GitHub repo. I've folded all the commits down into one because the older commits were merged using PRs with a similar format (e.g., `jmc/pull/23`) to this repo, so to avoid accidental noise (sorry about that) on other PRs I've just folded them away. If anyone is interested in the individual commits that got to this point, I've kept them around in the old repo [[2]](https://github.com/aptmac/jmc-old/commits/jfr-threads-page). >> >> This PR aims to improve the usability and functionality of the JFR Threads Page by extending and enhancing existing classes. In an attempt to not clutter this PR with lots of images and explanatory text, I've created a gist [[3]](https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36) that provides information and images/gifs of the new components and intended functionality. >> >> Gist: https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36 >> >> Summary of changes: >> - Introduction of canvases to display the thread names (left) and timeline (bottom) >> - Scrolled composites to house the text and chart canvases, for vertical scrolling of the chart area >> - Timeline canvas (bottom) is draggable for panning the chart >> - Current threads table has been re-located to a popup table >> - New filter bar (top) which alters the chart view based on time ranges and desired visible activity lanes >> - New display bar (right) which houses the zoom mechanics >> - New zoom pan component for easily navigating the chart >> - Introduction of a colour palette to increase contrast between neighbouring activity lanes >> - Controls to change the height of the thread lanes >> - updated and new uitests >> >> Before: >> ![before](https://i.imgur.com/TNfGrtJ.png) >> >> After: >> ![after](https://user-images.githubusercontent.com/10425301/71993902-dfd93200-3205-11ea-8249-cc50409a7a9f.png) >> >> Let me know if you have any questions about the design & functionality. >> >> [0] https://bugs.openjdk.java.net/browse/JMC-6364 >> [1] http://mail.openjdk.java.net/pipermail/jmc-dev/2019-October/001454.html >> [2] https://github.com/aptmac/jmc-old/commits/jfr-threads-page >> [3] https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36 > > Alex Macdonald has updated the pull request incrementally with two additional commits since the last revision: > > - applied patch from Guru > - fix tests when chart gets reset Changes looks good, Sanity test done on MacOS and Windows. ------------- Marked as reviewed by ghb (Reviewer). PR: https://git.openjdk.java.net/jmc/pull/27 From ghb at openjdk.java.net Tue Nov 3 08:06:59 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Tue, 3 Nov 2020 08:06:59 GMT Subject: RFR: 6965: Thirdparty licenses missing in core, Maven plugins version update Message-ID: Fix contails : 1 "THIRD_PARTY_LICENSES.txt" (new file) contain license attributes of owasp java encoder and lz4-java. 2. "LICENSE.TXT" should be contained in the root directory (inside jar) instead of "rootdir/license/Licenses.txt" (which was earlier fixed in JMC-6951" 3. Maven build time plugins version update for : [core] update maven dependent plugin with latest version : org.apache.maven.plugins:maven-jar-plugin:3.2.0 (old : 3.1.0) org.apache.maven.plugins:maven-resources-plugin:3.2.0 (old : 3.0.2) org.apache.maven.plugins:maven-source-plugin:3.2.1 (old: 3.0.2) org.apache.maven.plugins:maven-javadoc-plugin: 3.2.0 (old : 3.0.2) [jmc] org.commonjava.maven.plugins:directory-maven-plugin:0.3.1 (old : 0.2) org.apache.maven.plugins:maven-resource-plugin:3.2.0 (old : 3.0.2) junit:junit:4.13.1 (old : 4.12) 4. Fixed javadoc error (Invalid parameter 'the" in IPoolFactory.java) after upgrading javadoc-plugin with 3.2.0 5. [Core] Fixed Warning "'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing" in test modules : missing value in the test pom.xml ------------- Commit messages: - 6965: Thirdparty licenses missing in core, Maven plugins version update Changes: https://git.openjdk.java.net/jmc/pull/154/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=154&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-6965 Stats: 343 lines in 14 files changed: 319 ins; 3 del; 21 mod Patch: https://git.openjdk.java.net/jmc/pull/154.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/154/head:pull/154 PR: https://git.openjdk.java.net/jmc/pull/154 From github.com+28612+gunnarmorling at openjdk.java.net Tue Nov 3 08:32:05 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Tue, 3 Nov 2020 08:32:05 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v2] In-Reply-To: References: Message-ID: > So here's a fresh take on the `Unsafe` / `add-opens` issue for JMC Agent. This still is using `Unsafe`, but I'm using the instrumentation API for opening up the base module within the agent itself, instead of requiring the user to do so. Ideally, we'd still get away from `Unsafe`, but this make the agent easier to use. This is still a draft, would do some more polishing if you all think it's the right approach. Feedback welcome! Gunnar Morling has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision: 6964: Automatically open base module for accessing Unsafe on JDK 11+ ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/152/files - new: https://git.openjdk.java.net/jmc/pull/152/files/1e7960c3..2fdedcb4 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=152&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=152&range=00-01 Stats: 0 lines in 0 files changed: 0 ins; 0 del; 0 mod Patch: https://git.openjdk.java.net/jmc/pull/152.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/152/head:pull/152 PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Tue Nov 3 08:32:06 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Tue, 3 Nov 2020 08:32:06 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ In-Reply-To: References: <0ZWS2osOQreDkM30RMPDEX5Or2OIqGveIJsxU1xKvQc=.21e9f943-e8b0-4bd2-a8f4-c9b51c413057@github.com> Message-ID: <1tcwtSrXROkFqnHlk8xXPUFCjP4mfIf_ORfcreEr1V0=.e92a20f3-741d-44cc-b45b-24dbc1b3a458@github.com> On Tue, 3 Nov 2020 03:36:08 GMT, Guru Hb wrote: > Please change title of this pull request matching to https://bugs.openjdk.java.net/browse/JMC-6964 Done; thx for logging the issue! ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From hirt at openjdk.java.net Tue Nov 3 09:54:51 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Tue, 3 Nov 2020 09:54:51 GMT Subject: RFR: 6965: Thirdparty licenses missing in core, Maven plugins version update In-Reply-To: References: Message-ID: On Tue, 3 Nov 2020 08:02:42 GMT, Guru Hb wrote: > Fix contails : > 1 "THIRD_PARTY_LICENSES.txt" (new file) contain license attributes of owasp java encoder and lz4-java. > 2. "LICENSE.TXT" should be contained in the root directory (inside jar) instead of "rootdir/license/Licenses.txt" (which was earlier fixed in JMC-6951" > 3. Maven build time plugins version update for : > [core] update maven dependent plugin with latest version : > org.apache.maven.plugins:maven-jar-plugin:3.2.0 (old : 3.1.0) > org.apache.maven.plugins:maven-resources-plugin:3.2.0 (old : 3.0.2) > org.apache.maven.plugins:maven-source-plugin:3.2.1 (old: 3.0.2) > org.apache.maven.plugins:maven-javadoc-plugin: 3.2.0 (old : 3.0.2) > [jmc] > org.commonjava.maven.plugins:directory-maven-plugin:0.3.1 (old : 0.2) > org.apache.maven.plugins:maven-resource-plugin:3.2.0 (old : 3.0.2) > junit:junit:4.13.1 (old : 4.12) > > 4. Fixed javadoc error (Invalid parameter 'the" in IPoolFactory.java) after upgrading javadoc-plugin with 3.2.0 > 5. [Core] Fixed Warning "'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing" in test modules : missing value in the test pom.xml LGTM! ------------- Marked as reviewed by hirt (Lead). PR: https://git.openjdk.java.net/jmc/pull/154 From hirt at openjdk.java.net Tue Nov 3 09:55:55 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Tue, 3 Nov 2020 09:55:55 GMT Subject: RFR: 5604: Check bytecode verification flags [v2] In-Reply-To: References: Message-ID: On Mon, 2 Nov 2020 21:53:02 GMT, Jean-Philippe Bempel wrote: >> look into JAVA_ARGUMENTS attribute >> add also tests > > Jean-Philippe Bempel has updated the pull request incrementally with one additional commit since the last revision: > > fix copyright year Marked as reviewed by hirt (Lead). ------------- PR: https://git.openjdk.java.net/jmc/pull/153 From ghb at openjdk.java.net Tue Nov 3 12:22:51 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Tue, 3 Nov 2020 12:22:51 GMT Subject: Integrated: 6965: Thirdparty licenses missing in core, Maven plugins version update In-Reply-To: References: Message-ID: <9OWnvwBVusO-LWWhz6bZTVesbQr1MIfO_JtVy8GbLvA=.4df660c4-dc94-4f97-9f91-3648fb2a559e@github.com> On Tue, 3 Nov 2020 08:02:42 GMT, Guru Hb wrote: > Fix contails : > 1 "THIRD_PARTY_LICENSES.txt" (new file) contain license attributes of owasp java encoder and lz4-java. > 2. "LICENSE.TXT" should be contained in the root directory (inside jar) instead of "rootdir/license/Licenses.txt" (which was earlier fixed in JMC-6951" > 3. Maven build time plugins version update for : > [core] update maven dependent plugin with latest version : > org.apache.maven.plugins:maven-jar-plugin:3.2.0 (old : 3.1.0) > org.apache.maven.plugins:maven-resources-plugin:3.2.0 (old : 3.0.2) > org.apache.maven.plugins:maven-source-plugin:3.2.1 (old: 3.0.2) > org.apache.maven.plugins:maven-javadoc-plugin: 3.2.0 (old : 3.0.2) > [jmc] > org.commonjava.maven.plugins:directory-maven-plugin:0.3.1 (old : 0.2) > org.apache.maven.plugins:maven-resource-plugin:3.2.0 (old : 3.0.2) > junit:junit:4.13.1 (old : 4.12) > > 4. Fixed javadoc error (Invalid parameter 'the" in IPoolFactory.java) after upgrading javadoc-plugin with 3.2.0 > 5. [Core] Fixed Warning "'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing" in test modules : missing value in the test pom.xml This pull request has now been integrated. Changeset: 77f5c1ba Author: Guru Hb URL: https://git.openjdk.java.net/jmc/commit/77f5c1ba Stats: 343 lines in 14 files changed: 319 ins; 3 del; 21 mod 6965: Thirdparty licenses missing in core, Maven plugins version update Reviewed-by: hirt ------------- PR: https://git.openjdk.java.net/jmc/pull/154 From github.com+4610701+jpbempel at openjdk.java.net Tue Nov 3 15:02:04 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Tue, 3 Nov 2020 15:02:04 GMT Subject: RFR: 6948: Add union to QuantityRange [v3] In-Reply-To: References: Message-ID: > Add tests for intersetion & union Jean-Philippe Bempel has updated the pull request incrementally with one additional commit since the last revision: Do not use directly intersection method To avoid allocating QuantityRange object ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/150/files - new: https://git.openjdk.java.net/jmc/pull/150/files/593ecfa2..6e65ad2c Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=150&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=150&range=01-02 Stats: 19 lines in 1 file changed: 16 ins; 0 del; 3 mod Patch: https://git.openjdk.java.net/jmc/pull/150.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/150/head:pull/150 PR: https://git.openjdk.java.net/jmc/pull/150 From schaturvedi at openjdk.java.net Tue Nov 3 15:15:56 2020 From: schaturvedi at openjdk.java.net (Suchita Chaturvedi) Date: Tue, 3 Nov 2020 15:15:56 GMT Subject: RFR: 4984: Label missing for Focus Selection combobox Message-ID: Added a new label for Selection combo box. This was an issue pointed out by vpat. Please review the change. ------------- Commit messages: - 4984: Label missing for Focus Selection combobox Changes: https://git.openjdk.java.net/jmc/pull/155/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=155&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-4984 Stats: 8 lines in 3 files changed: 6 ins; 0 del; 2 mod Patch: https://git.openjdk.java.net/jmc/pull/155.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/155/head:pull/155 PR: https://git.openjdk.java.net/jmc/pull/155 From github.com+4610701+jpbempel at openjdk.java.net Tue Nov 3 20:20:53 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Tue, 3 Nov 2020 20:20:53 GMT Subject: Integrated: 5604: Check bytecode verification flags In-Reply-To: References: Message-ID: On Sun, 1 Nov 2020 21:27:20 GMT, Jean-Philippe Bempel wrote: > look into JAVA_ARGUMENTS attribute > add also tests This pull request has now been integrated. Changeset: e70c80ec Author: Jean-Philippe Bempel Committer: Marcus Hirt URL: https://git.openjdk.java.net/jmc/commit/e70c80ec Stats: 170 lines in 4 files changed: 166 ins; 0 del; 4 mod 5604: Check bytecode verification flags Reviewed-by: hirt, ghb ------------- PR: https://git.openjdk.java.net/jmc/pull/153 From schaturvedi at openjdk.java.net Tue Nov 3 21:06:02 2020 From: schaturvedi at openjdk.java.net (Suchita Chaturvedi) Date: Tue, 3 Nov 2020 21:06:02 GMT Subject: RFR: 6878: Update Spotbugs latest version in jmc 8.0.0 source [v2] In-Reply-To: References: Message-ID: > Updating spotbugs version from 4.0.4 to 4.1.4 which is the latest available. > > Please review the change. Suchita Chaturvedi has updated the pull request incrementally with one additional commit since the last revision: Fix spotbugs failures ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/145/files - new: https://git.openjdk.java.net/jmc/pull/145/files/6ec6e5d4..b56660a6 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=145&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=145&range=00-01 Stats: 8 lines in 1 file changed: 0 ins; 0 del; 8 mod Patch: https://git.openjdk.java.net/jmc/pull/145.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/145/head:pull/145 PR: https://git.openjdk.java.net/jmc/pull/145 From hdafgard at openjdk.java.net Tue Nov 3 23:26:51 2020 From: hdafgard at openjdk.java.net (Henrik =?UTF-8?B?RGFmZ8OlcmQ=?=) Date: Tue, 3 Nov 2020 23:26:51 GMT Subject: RFR: 6948: Add union to QuantityRange [v3] In-Reply-To: References: Message-ID: On Tue, 3 Nov 2020 15:02:04 GMT, Jean-Philippe Bempel wrote: >> Add tests for intersetion & union > > Jean-Philippe Bempel has updated the pull request incrementally with one additional commit since the last revision: > > Do not use directly intersection method > > To avoid allocating QuantityRange object Marked as reviewed by hdafgard (Reviewer). ------------- PR: https://git.openjdk.java.net/jmc/pull/150 From schaturvedi at openjdk.java.net Wed Nov 4 10:25:02 2020 From: schaturvedi at openjdk.java.net (Suchita Chaturvedi) Date: Wed, 4 Nov 2020 10:25:02 GMT Subject: RFR: 6878: Update Spotbugs latest version in jmc 8.0.0 source [v3] In-Reply-To: References: Message-ID: > Updating spotbugs version from 4.0.4 to 4.1.4 which is the latest available. > > Please review the change. Suchita Chaturvedi has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: - Rebasing the branch with master - Fix spotbugs failures - 6878: Update Spotbugs latest version in jmc 8.0.0 source ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/145/files - new: https://git.openjdk.java.net/jmc/pull/145/files/b56660a6..7904abb3 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=145&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=145&range=01-02 Stats: 891 lines in 69 files changed: 658 ins; 94 del; 139 mod Patch: https://git.openjdk.java.net/jmc/pull/145.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/145/head:pull/145 PR: https://git.openjdk.java.net/jmc/pull/145 From github.com+4610701+jpbempel at openjdk.java.net Wed Nov 4 13:07:53 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Wed, 4 Nov 2020 13:07:53 GMT Subject: Integrated: 6948: Add union to QuantityRange In-Reply-To: References: Message-ID: <4ndggFLyKhcTRETUVKvcz_Dd8a_PDSYiTRe9awpmptE=.cdc84723-2832-4a05-abaf-538a88037f39@github.com> On Sat, 31 Oct 2020 21:52:18 GMT, Jean-Philippe Bempel wrote: > Add tests for intersetion & union This pull request has now been integrated. Changeset: d2a600a6 Author: Jean-Philippe Bempel Committer: Henrik Dafg?rd URL: https://git.openjdk.java.net/jmc/commit/d2a600a6 Stats: 161 lines in 2 files changed: 161 ins; 0 del; 0 mod 6948: Add union to QuantityRange Reviewed-by: hdafgard ------------- PR: https://git.openjdk.java.net/jmc/pull/150 From hirt at openjdk.java.net Wed Nov 4 13:19:53 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 4 Nov 2020 13:19:53 GMT Subject: RFR: 6878: Update Spotbugs latest version in jmc 8.0.0 source [v3] In-Reply-To: References: Message-ID: On Wed, 4 Nov 2020 10:25:02 GMT, Suchita Chaturvedi wrote: >> Updating spotbugs version from 4.0.4 to 4.1.4 which is the latest available. >> >> Please review the change. > > Suchita Chaturvedi has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: > > - Rebasing the branch with master > - Fix spotbugs failures > - 6878: Update Spotbugs latest version in jmc 8.0.0 source Marked as reviewed by hirt (Lead). ------------- PR: https://git.openjdk.java.net/jmc/pull/145 From schaturvedi at openjdk.java.net Wed Nov 4 13:43:52 2020 From: schaturvedi at openjdk.java.net (Suchita Chaturvedi) Date: Wed, 4 Nov 2020 13:43:52 GMT Subject: Integrated: 6878: Update Spotbugs latest version in jmc 8.0.0 source In-Reply-To: References: Message-ID: On Wed, 28 Oct 2020 23:16:48 GMT, Suchita Chaturvedi wrote: > Updating spotbugs version from 4.0.4 to 4.1.4 which is the latest available. > > Please review the change. This pull request has now been integrated. Changeset: b46097d5 Author: Suchita Chaturvedi URL: https://git.openjdk.java.net/jmc/commit/b46097d5 Stats: 9 lines in 2 files changed: 0 ins; 0 del; 9 mod 6878: Update Spotbugs latest version in jmc 8.0.0 source Reviewed-by: hirt ------------- PR: https://git.openjdk.java.net/jmc/pull/145 From schaturvedi at openjdk.java.net Wed Nov 4 16:52:06 2020 From: schaturvedi at openjdk.java.net (Suchita Chaturvedi) Date: Wed, 4 Nov 2020 16:52:06 GMT Subject: RFR: 4984: Label missing for Focus Selection combobox [v2] In-Reply-To: References: Message-ID: > Added a new label for Selection combo box. This was an issue pointed out by vpat. > > Please review the change. Suchita Chaturvedi has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision: - Rebasing branch with master - 4984: Label missing for Focus Selection combobox ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/155/files - new: https://git.openjdk.java.net/jmc/pull/155/files/39ac9ace..1e4aa495 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=155&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=155&range=00-01 Stats: 340 lines in 8 files changed: 327 ins; 0 del; 13 mod Patch: https://git.openjdk.java.net/jmc/pull/155.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/155/head:pull/155 PR: https://git.openjdk.java.net/jmc/pull/155 From github.com+4610701+jpbempel at openjdk.java.net Thu Nov 5 20:41:59 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Thu, 5 Nov 2020 20:41:59 GMT Subject: RFR: 5707: Add excludes for password checking rules Message-ID: <9wA9m8HH8JNlKkoR1evptnXf_Z05BVdpV6LEdvolHcA=.7bcb8987-51fe-423c-a294-0c075ae1480f@github.com> Add also unit tests for each rule ------------- Commit messages: - 5707: Add excludes for password checking rules Changes: https://git.openjdk.java.net/jmc/pull/156/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=156&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-5707 Stats: 491 lines in 11 files changed: 479 ins; 2 del; 10 mod Patch: https://git.openjdk.java.net/jmc/pull/156.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/156/head:pull/156 PR: https://git.openjdk.java.net/jmc/pull/156 From ghb at openjdk.java.net Sun Nov 8 07:05:59 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Sun, 8 Nov 2020 07:05:59 GMT Subject: RFR: 5734: Overflow in stacktrace tooltips on Mac Message-ID: [Mac os] stacktrace tooltip view lines used to overflow with second line clipped. Solution : Stacktrace contains two list element, by adding span to list element with 'nowarp=true' solves the problem as similarly done in ChartToolTipProvider. jmc-5734 ------------- Commit messages: - Merge branch '5734' of https://github.com/guruhb/jmc into 5734 - 5734: Overflow in stacktrace tooltips on Mac - 5734: Overflow in stacktrace tooltips on Mac Changes: https://git.openjdk.java.net/jmc/pull/157/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=157&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-5734 Stats: 5 lines in 1 file changed: 0 ins; 0 del; 5 mod Patch: https://git.openjdk.java.net/jmc/pull/157.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/157/head:pull/157 PR: https://git.openjdk.java.net/jmc/pull/157 From hirt at openjdk.java.net Mon Nov 9 09:38:56 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 9 Nov 2020 09:38:56 GMT Subject: RFR: 5707: Add excludes for password checking rules In-Reply-To: <9wA9m8HH8JNlKkoR1evptnXf_Z05BVdpV6LEdvolHcA=.7bcb8987-51fe-423c-a294-0c075ae1480f@github.com> References: <9wA9m8HH8JNlKkoR1evptnXf_Z05BVdpV6LEdvolHcA=.7bcb8987-51fe-423c-a294-0c075ae1480f@github.com> Message-ID: <8fbTTsVBa0Q9z-SvaDLF1C6Jx90913bulHqac5fWfR8=.c283aa02-620f-4e6b-b3e3-a56f5a1f239d@github.com> On Thu, 5 Nov 2020 20:38:09 GMT, Jean-Philippe Bempel wrote: > Add also unit tests for each rule Marked as reviewed by hirt (Lead). ------------- PR: https://git.openjdk.java.net/jmc/pull/156 From github.com+4610701+jpbempel at openjdk.java.net Tue Nov 10 15:20:54 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Tue, 10 Nov 2020 15:20:54 GMT Subject: Integrated: 5707: Add excludes for password checking rules In-Reply-To: <9wA9m8HH8JNlKkoR1evptnXf_Z05BVdpV6LEdvolHcA=.7bcb8987-51fe-423c-a294-0c075ae1480f@github.com> References: <9wA9m8HH8JNlKkoR1evptnXf_Z05BVdpV6LEdvolHcA=.7bcb8987-51fe-423c-a294-0c075ae1480f@github.com> Message-ID: On Thu, 5 Nov 2020 20:38:09 GMT, Jean-Philippe Bempel wrote: > Add also unit tests for each rule This pull request has now been integrated. Changeset: 8216543d Author: Jean-Philippe Bempel Committer: Marcus Hirt URL: https://git.openjdk.java.net/jmc/commit/8216543d Stats: 491 lines in 11 files changed: 479 ins; 2 del; 10 mod 5707: Add excludes for password checking rules Reviewed-by: hirt ------------- PR: https://git.openjdk.java.net/jmc/pull/156 From hirt at openjdk.java.net Tue Nov 10 15:28:53 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Tue, 10 Nov 2020 15:28:53 GMT Subject: RFR: 5734: Overflow in stacktrace tooltips on Mac In-Reply-To: References: Message-ID: <9xb1IQjGEBjltkW-WIuz0M1bUZa-xzOkwvj_ICCtvak=.cf401a44-f840-4af1-9a8a-5fc57cec417d@github.com> On Sun, 8 Nov 2020 07:01:06 GMT, Guru Hb wrote: > [Mac os] stacktrace tooltip view lines used to overflow with second line clipped. > Solution : Stacktrace contains two list element, by adding span to list element with 'nowarp=true' solves the problem as similarly done in ChartToolTipProvider. > > jmc-5734 Marked as reviewed by hirt (Lead). ------------- PR: https://git.openjdk.java.net/jmc/pull/157 From hirt at openjdk.java.net Tue Nov 10 16:00:58 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Tue, 10 Nov 2020 16:00:58 GMT Subject: RFR: 4984: Label missing for Focus Selection combobox [v2] In-Reply-To: References: Message-ID: On Wed, 4 Nov 2020 16:52:06 GMT, Suchita Chaturvedi wrote: >> Added a new label for Selection combo box. This was an issue pointed out by vpat. >> >> Please review the change. > > Suchita Chaturvedi has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision: > > - Rebasing branch with master > - 4984: Label missing for Focus Selection combobox application/org.openjdk.jmc.flightrecorder.ui/src/main/resources/org/openjdk/jmc/flightrecorder/ui/messages/internal/messages.properties line 274: > 272: FlavorSelector_BUTTON_TIMERANGE_SET_TOOLTIP=Zoom to time range on relevant places on the page > 273: FlavorSelector_LABEL_ASPECT=Aspect: > 274: FlavorSelector_LABEL_SELECTION=Selection: Selection is a bit of an overloaded term. Perhaps Focus would be better (it also takes less screen estate)? Check with a few more people to see which makes the more sense. The action is "Set as As Focused Selection". ------------- PR: https://git.openjdk.java.net/jmc/pull/155 From ghb at openjdk.java.net Tue Nov 10 16:06:52 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Tue, 10 Nov 2020 16:06:52 GMT Subject: Integrated: 5734: Overflow in stacktrace tooltips on Mac In-Reply-To: References: Message-ID: On Sun, 8 Nov 2020 07:01:06 GMT, Guru Hb wrote: > [Mac os] stacktrace tooltip view lines used to overflow with second line clipped. > Solution : Stacktrace contains two list element, by adding span to list element with 'nowarp=true' solves the problem as similarly done in ChartToolTipProvider. > > jmc-5734 This pull request has now been integrated. Changeset: 371aa9af Author: Guru Hb URL: https://git.openjdk.java.net/jmc/commit/371aa9af Stats: 5 lines in 1 file changed: 0 ins; 0 del; 5 mod 5734: Overflow in stacktrace tooltips on Mac Reviewed-by: hirt ------------- PR: https://git.openjdk.java.net/jmc/pull/157 From github.com+4610701+jpbempel at openjdk.java.net Tue Nov 10 21:54:59 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Tue, 10 Nov 2020 21:54:59 GMT Subject: RFR: 5603: Version specific help links in event type missing result Message-ID: <_GSGxUXOfx8QJmlz3VnkhNrHjre5GL6CzVca5N5SGds=.14863abc-35d5-4733-a1e8-86d0d9eb9432@github.com> Falls back to Java 8 link if no version information ------------- Commit messages: - 5603: Version specific help links in event type missing result Changes: https://git.openjdk.java.net/jmc/pull/158/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=158&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-5603 Stats: 145 lines in 3 files changed: 31 ins; 1 del; 113 mod Patch: https://git.openjdk.java.net/jmc/pull/158.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/158/head:pull/158 PR: https://git.openjdk.java.net/jmc/pull/158 From hirt at openjdk.java.net Tue Nov 10 22:50:52 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Tue, 10 Nov 2020 22:50:52 GMT Subject: RFR: 5603: Version specific help links in event type missing result In-Reply-To: <_GSGxUXOfx8QJmlz3VnkhNrHjre5GL6CzVca5N5SGds=.14863abc-35d5-4733-a1e8-86d0d9eb9432@github.com> References: <_GSGxUXOfx8QJmlz3VnkhNrHjre5GL6CzVca5N5SGds=.14863abc-35d5-4733-a1e8-86d0d9eb9432@github.com> Message-ID: On Tue, 10 Nov 2020 21:50:38 GMT, Jean-Philippe Bempel wrote: > Falls back to Java 8 link if no version information Marked as reviewed by hirt (Lead). ------------- PR: https://git.openjdk.java.net/jmc/pull/158 From hirt at openjdk.java.net Tue Nov 10 23:16:55 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Tue, 10 Nov 2020 23:16:55 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v2] In-Reply-To: References: Message-ID: On Tue, 3 Nov 2020 08:32:05 GMT, Gunnar Morling wrote: >> So here's a fresh take on the `Unsafe` / `add-opens` issue for JMC Agent. This still is using `Unsafe`, but I'm using the instrumentation API for opening up the base module within the agent itself, instead of requiring the user to do so. Ideally, we'd still get away from `Unsafe`, but this make the agent easier to use. This is still a draft, would do some more polishing if you all think it's the right approach. Feedback welcome! > > Gunnar Morling has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision: > > 6964: Automatically open base module for accessing Unsafe on JDK 11+ Changes requested by hirt (Lead). agent/src/main/java/org/openjdk/jmc/agent/util/VersionUtils.java line 70: > 68: > 69: } catch (Exception e) { > 70: System.out.println("Could not identify Java version. The agent will not work"); //$NON-NLS-1$ A system exit from a method named determineFeatureVersion seems slightly evil. ;) agent/src/main/java/org/openjdk/jmc/agent/Agent.java line 97: > 95: ); > 96: } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { > 97: System.out.println( Perhaps moving the openUnsafePackage method out of the Agent class might be nice to keep the agent class clean. Also, since you use the same pattern in the VersionUtils, perhaps some static printAndExit(Exception e, int errorCode, String message) too. And perhaps use different exit codes for failing to open up the package vs not being able to determine the version. Perhaps you could have an AgentStartupUtils under the agent.impl package and move the VersionUtils methods there too? These are only used when starting the agent. ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+4610701+jpbempel at openjdk.java.net Wed Nov 11 13:16:53 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Wed, 11 Nov 2020 13:16:53 GMT Subject: Integrated: 5603: Version specific help links in event type missing result In-Reply-To: <_GSGxUXOfx8QJmlz3VnkhNrHjre5GL6CzVca5N5SGds=.14863abc-35d5-4733-a1e8-86d0d9eb9432@github.com> References: <_GSGxUXOfx8QJmlz3VnkhNrHjre5GL6CzVca5N5SGds=.14863abc-35d5-4733-a1e8-86d0d9eb9432@github.com> Message-ID: On Tue, 10 Nov 2020 21:50:38 GMT, Jean-Philippe Bempel wrote: > Falls back to Java 8 link if no version information This pull request has now been integrated. Changeset: cfd38605 Author: Jean-Philippe Bempel Committer: Marcus Hirt URL: https://git.openjdk.java.net/jmc/commit/cfd38605 Stats: 145 lines in 3 files changed: 31 ins; 1 del; 113 mod 5603: Version specific help links in event type missing result Reviewed-by: hirt ------------- PR: https://git.openjdk.java.net/jmc/pull/158 From schaturvedi at openjdk.java.net Thu Nov 12 22:38:08 2020 From: schaturvedi at openjdk.java.net (Suchita Chaturvedi) Date: Thu, 12 Nov 2020 22:38:08 GMT Subject: RFR: 4984: Label missing for Focus Selection combobox [v3] In-Reply-To: References: Message-ID: > Added a new label for Selection combo box. This was an issue pointed out by vpat. > > Please review the change. Suchita Chaturvedi has updated the pull request incrementally with one additional commit since the last revision: Changed label to focus and rebased branch with master ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/155/files - new: https://git.openjdk.java.net/jmc/pull/155/files/1e4aa495..0fd0e78f Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=155&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=155&range=01-02 Stats: 642 lines in 15 files changed: 510 ins; 3 del; 129 mod Patch: https://git.openjdk.java.net/jmc/pull/155.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/155/head:pull/155 PR: https://git.openjdk.java.net/jmc/pull/155 From ghb at openjdk.java.net Fri Nov 13 15:37:58 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Fri, 13 Nov 2020 15:37:58 GMT Subject: RFR: 4984: Label missing for Focus Selection combobox [v3] In-Reply-To: References: Message-ID: On Thu, 12 Nov 2020 22:38:08 GMT, Suchita Chaturvedi wrote: >> Added a new label for Selection combo box. This was an issue pointed out by vpat. >> >> Please review the change. > > Suchita Chaturvedi has updated the pull request incrementally with one additional commit since the last revision: > > Changed label to focus and rebased branch with master Changes requested by ghb (Reviewer). application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/views/stacktrace/StacktraceView.java line 767: > 765: .displayUsing(IDisplayable.AUTO); > 766: StringBuilder sb = new StringBuilder("
"); //$NON-NLS-1$ > 767: sb.append("
  • "); //$NON-NLS-1$ //$NON-NLS-2$ Unrelated changes ------------- PR: https://git.openjdk.java.net/jmc/pull/155 From ghb at openjdk.java.net Fri Nov 13 15:37:59 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Fri, 13 Nov 2020 15:37:59 GMT Subject: RFR: 4984: Label missing for Focus Selection combobox In-Reply-To: References: Message-ID: On Tue, 3 Nov 2020 15:02:53 GMT, Suchita Chaturvedi wrote: > Added a new label for Selection combo box. This was an issue pointed out by vpat. > > Please review the change. Fix contains Other unrelated changes. ------------- PR: https://git.openjdk.java.net/jmc/pull/155 From ghb at openjdk.java.net Fri Nov 13 17:00:03 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Fri, 13 Nov 2020 17:00:03 GMT Subject: RFR: 6974: Try to use the chromium SWT browser by default on windows Message-ID: Using SWT Chromium browser for windows . Followed steps provided in https://www.eclipse.org/swt/faq.php#howusechromium With the plugin "com.make.chromium.cef.win32.win32.x86_64" inclusion in the core feature.xml makes other platform and its product definition to contain the chromium p2 site, which makes other build to have extra 56 MB of swt chromium jar which doesn't work on Eclipse 2020-06 and below. Note: Eclipse IDE (on Windows) add "-Dorg.eclipse.swt.browser.DefaultType=chromium" to override default browser to Chromium, Were as standalone rcp application and its jmc.ini contains this flag. ------------- Commit messages: - 6974: Try to use the chromium SWT browser by default on windows Changes: https://git.openjdk.java.net/jmc/pull/160/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=160&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-6974 Stats: 29 lines in 6 files changed: 27 ins; 0 del; 2 mod Patch: https://git.openjdk.java.net/jmc/pull/160.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/160/head:pull/160 PR: https://git.openjdk.java.net/jmc/pull/160 From hirt at openjdk.java.net Fri Nov 13 21:00:54 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 13 Nov 2020 21:00:54 GMT Subject: RFR: 6974: Try to use the chromium SWT browser by default on windows In-Reply-To: References: Message-ID: On Fri, 13 Nov 2020 16:56:24 GMT, Guru Hb wrote: > Using SWT Chromium browser for windows . > Followed steps provided in https://www.eclipse.org/swt/faq.php#howusechromium > > With the plugin "com.make.chromium.cef.win32.win32.x86_64" inclusion in the core feature.xml makes other platform and its product definition to contain the chromium p2 site, which makes other build to have extra 56 MB of swt chromium jar which doesn't work on Eclipse 2020-06 and below. > > > Note: Eclipse IDE (on Windows) add "-Dorg.eclipse.swt.browser.DefaultType=chromium" to override default browser to Chromium, Were as standalone rcp application and its jmc.ini contains this flag. Marked as reviewed by hirt (Lead). ------------- PR: https://git.openjdk.java.net/jmc/pull/160 From ghb at openjdk.java.net Sun Nov 15 06:04:53 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Sun, 15 Nov 2020 06:04:53 GMT Subject: Integrated: 6974: Try to use the chromium SWT browser by default on windows In-Reply-To: References: Message-ID: On Fri, 13 Nov 2020 16:56:24 GMT, Guru Hb wrote: > Using SWT Chromium browser for windows . > Followed steps provided in https://www.eclipse.org/swt/faq.php#howusechromium > > With the plugin "com.make.chromium.cef.win32.win32.x86_64" inclusion in the core feature.xml makes other platform and its product definition to contain the chromium p2 site, which makes other build to have extra 56 MB of swt chromium jar which doesn't work on Eclipse 2020-06 and below. > > > Note: Eclipse IDE (on Windows) add "-Dorg.eclipse.swt.browser.DefaultType=chromium" to override default browser to Chromium, Were as standalone rcp application and its jmc.ini contains this flag. This pull request has now been integrated. Changeset: c3f49204 Author: Guru Hb URL: https://git.openjdk.java.net/jmc/commit/c3f49204 Stats: 29 lines in 6 files changed: 27 ins; 0 del; 2 mod 6974: Try to use the chromium SWT browser by default on windows Reviewed-by: hirt ------------- PR: https://git.openjdk.java.net/jmc/pull/160 From github.com+28612+gunnarmorling at openjdk.java.net Sun Nov 15 09:50:54 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Sun, 15 Nov 2020 09:50:54 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v2] In-Reply-To: References: Message-ID: On Tue, 10 Nov 2020 22:59:17 GMT, Marcus Hirt wrote: >> Gunnar Morling has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision: >> >> 6964: Automatically open base module for accessing Unsafe on JDK 11+ > > agent/src/main/java/org/openjdk/jmc/agent/util/VersionUtils.java line 70: > >> 68: >> 69: } catch (Exception e) { >> 70: System.out.println("Could not identify Java version. The agent will not work"); //$NON-NLS-1$ > > A system exit from a method named determineFeatureVersion seems slightly evil. ;) Tbh. I just took inspiration from `TypeUtils#getUnsafeDefineClassMethod(Object)`, so I thought it's what should happen. What's the general stance for uncoverable exceptions in the agent? Should the app just run normally, ignoring any errors in the agent? If so, a general catch-all handler in the agent's main method might be useful. ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Sun Nov 15 09:53:54 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Sun, 15 Nov 2020 09:53:54 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v2] In-Reply-To: References: Message-ID: <45YWKdEwJfOREisqJk72CoXAyXWL94x7CMMLLxmwNF0=.17ff26ec-7545-4173-b3f1-054b771f80ec@github.com> On Tue, 10 Nov 2020 23:14:37 GMT, Marcus Hirt wrote: >> Gunnar Morling has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision: >> >> 6964: Automatically open base module for accessing Unsafe on JDK 11+ > > Changes requested by hirt (Lead). Thanks for reviewing, @thegreystone. Will update in a bit. > agent/src/main/java/org/openjdk/jmc/agent/Agent.java line 97: > >> 95: ); >> 96: } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { >> 97: System.out.println( > > Perhaps moving the openUnsafePackage method out of the Agent class might be nice to keep the agent class clean. Also, since you use the same pattern in the VersionUtils, perhaps some static printAndExit(Exception e, int errorCode, String message) too. And perhaps use different exit codes for failing to open up the package vs not being able to determine the version. > > Perhaps you could have an AgentStartupUtils under the agent.impl package and move the VersionUtils methods there too? These are only used when starting the agent. Good ideas, will rework based on that. Re VersionUtils, there's similar demands for that elsewhere; seeing now I probably should merge this with `VersionResolver`. ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From schaturvedi at openjdk.java.net Mon Nov 16 19:24:00 2020 From: schaturvedi at openjdk.java.net (Suchita Chaturvedi) Date: Mon, 16 Nov 2020 19:24:00 GMT Subject: Withdrawn: 4984: Label missing for Focus Selection combobox In-Reply-To: References: Message-ID: On Tue, 3 Nov 2020 15:02:53 GMT, Suchita Chaturvedi wrote: > Added a new label for Selection combo box. This was an issue pointed out by vpat. > > Please review the change. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.java.net/jmc/pull/155 From schaturvedi at openjdk.java.net Mon Nov 16 19:29:13 2020 From: schaturvedi at openjdk.java.net (Suchita Chaturvedi) Date: Mon, 16 Nov 2020 19:29:13 GMT Subject: RFR: 4984: Label missing for Focus Selection combobox Message-ID: Added a new label for Selection combo box. This was an issue pointed out by vpat. Please review the change. ------------- Commit messages: - 4984: Label missing for Focus Selection combobox Changes: https://git.openjdk.java.net/jmc/pull/161/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=161&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-4984 Stats: 8 lines in 3 files changed: 6 ins; 0 del; 2 mod Patch: https://git.openjdk.java.net/jmc/pull/161.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/161/head:pull/161 PR: https://git.openjdk.java.net/jmc/pull/161 From hirt at openjdk.java.net Mon Nov 16 19:29:14 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 16 Nov 2020 19:29:14 GMT Subject: RFR: 4984: Label missing for Focus Selection combobox In-Reply-To: References: Message-ID: On Mon, 16 Nov 2020 19:24:45 GMT, Suchita Chaturvedi wrote: > Added a new label for Selection combo box. This was an issue pointed out by vpat. > > Please review the change. Marked as reviewed by hirt (Lead). ------------- PR: https://git.openjdk.java.net/jmc/pull/161 From hirt at openjdk.java.net Mon Nov 16 20:05:13 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 16 Nov 2020 20:05:13 GMT Subject: RFR: 6507: Use GraphViz to render stack traces Message-ID: Still need some pruning options to not be insanely slow when having plenty of nodes, but this is a start. ------------- Commit messages: - Formatting - Cleanup - Merge pull request #1 from cimi/graphview - 6507: inline graphviz wasm as base64 in js - Moving this out for now - to be completed at another time - Removing another one - Removing unused class - Allow more zoom - Merge branch 'graphview' of https://github.com/thegreystone/jmc into graphview - Merge branch 'graphview' of https://github.com/thegreystone/jmc into graphview - ... and 19 more: https://git.openjdk.java.net/jmc/compare/b46097d5...cd31910f Changes: https://git.openjdk.java.net/jmc/pull/162/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=162&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-6507 Stats: 1872 lines in 29 files changed: 1858 ins; 4 del; 10 mod Patch: https://git.openjdk.java.net/jmc/pull/162.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/162/head:pull/162 PR: https://git.openjdk.java.net/jmc/pull/162 From hirt at openjdk.java.net Mon Nov 16 20:28:10 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 16 Nov 2020 20:28:10 GMT Subject: RFR: 6507: Use GraphViz to render stack traces [v2] In-Reply-To: References: Message-ID: > Still need some pruning options to not be insanely slow when having plenty of nodes, but this is a start. Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: Making spotbugs happier ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/162/files - new: https://git.openjdk.java.net/jmc/pull/162/files/cd31910f..3dcd0146 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=162&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=162&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.java.net/jmc/pull/162.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/162/head:pull/162 PR: https://git.openjdk.java.net/jmc/pull/162 From aptmac at openjdk.java.net Mon Nov 16 22:18:02 2020 From: aptmac at openjdk.java.net (Alex Macdonald) Date: Mon, 16 Nov 2020 22:18:02 GMT Subject: RFR: 6364: Improvements to the Thread Graph [v6] In-Reply-To: References: <3b_EN291IWMTMl6vId_3HM3r9b2p0Bjxd9QYH5qgDO8=.50cc047a-4486-469a-a341-5908f78bb6df@github.com> Message-ID: On Tue, 3 Nov 2020 03:40:42 GMT, Guru Hb wrote: >> Alex Macdonald has updated the pull request incrementally with two additional commits since the last revision: >> >> - applied patch from Guru >> - fix tests when chart gets reset > > Changes looks good, Sanity test done on MacOS and Windows. @guruhb Thank you for the review, I'll integrate this momentarily ------------- PR: https://git.openjdk.java.net/jmc/pull/27 From aptmac at openjdk.java.net Mon Nov 16 22:18:03 2020 From: aptmac at openjdk.java.net (Alex Macdonald) Date: Mon, 16 Nov 2020 22:18:03 GMT Subject: Integrated: 6364: Improvements to the Thread Graph In-Reply-To: <3b_EN291IWMTMl6vId_3HM3r9b2p0Bjxd9QYH5qgDO8=.50cc047a-4486-469a-a341-5908f78bb6df@github.com> References: <3b_EN291IWMTMl6vId_3HM3r9b2p0Bjxd9QYH5qgDO8=.50cc047a-4486-469a-a341-5908f78bb6df@github.com> Message-ID: On Wed, 8 Jan 2020 15:59:38 GMT, Alex Macdonald wrote: > This patch addresses JMC-6364 [[0]](https://bugs.openjdk.java.net/browse/JMC-6364), the epic for tracking Improvements to the JFR Thread Graph. This RFR is also a follow-up to an RFC [[1]](http://mail.openjdk.java.net/pipermail/jmc-dev/2019-October/001454.html) that was posted to the jmc-dev list and incorporates the feedback that was brought up during discussion. > > The new design and features was imagined in collaboration with our UX team, and the implementation has been a joint effort between myself and Jessye (@jessyec-s) - we had been originally collaborating on a fork of the old (unofficial) JMC GitHub repo. I've folded all the commits down into one because the older commits were merged using PRs with a similar format (e.g., `jmc/pull/23`) to this repo, so to avoid accidental noise (sorry about that) on other PRs I've just folded them away. If anyone is interested in the individual commits that got to this point, I've kept them around in the old repo [[2]](https://github.com/aptmac/jmc-old/commits/jfr-threads-page). > > This PR aims to improve the usability and functionality of the JFR Threads Page by extending and enhancing existing classes. In an attempt to not clutter this PR with lots of images and explanatory text, I've created a gist [[3]](https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36) that provides information and images/gifs of the new components and intended functionality. > > Gist: https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36 > > Summary of changes: > - Introduction of canvases to display the thread names (left) and timeline (bottom) > - Scrolled composites to house the text and chart canvases, for vertical scrolling of the chart area > - Timeline canvas (bottom) is draggable for panning the chart > - Current threads table has been re-located to a popup table > - New filter bar (top) which alters the chart view based on time ranges and desired visible activity lanes > - New display bar (right) which houses the zoom mechanics > - New zoom pan component for easily navigating the chart > - Introduction of a colour palette to increase contrast between neighbouring activity lanes > - Controls to change the height of the thread lanes > - updated and new uitests > > Before: > ![before](https://i.imgur.com/TNfGrtJ.png) > > After: > ![after](https://user-images.githubusercontent.com/10425301/71993902-dfd93200-3205-11ea-8249-cc50409a7a9f.png) > > Let me know if you have any questions about the design & functionality. > > [0] https://bugs.openjdk.java.net/browse/JMC-6364 > [1] http://mail.openjdk.java.net/pipermail/jmc-dev/2019-October/001454.html > [2] https://github.com/aptmac/jmc-old/commits/jfr-threads-page > [3] https://gist.github.com/aptmac/61808c89bfcf1888080884fc8a61bd36 This pull request has now been integrated. Changeset: 5feaf25f Author: Alex Macdonald URL: https://git.openjdk.java.net/jmc/commit/5feaf25f Stats: 4796 lines in 50 files changed: 4428 ins; 51 del; 317 mod 6364: Improvements to the Thread Graph Co-authored-by: Jessye Coleman-Shapiro Reviewed-by: ghb ------------- PR: https://git.openjdk.java.net/jmc/pull/27 From hirt at openjdk.java.net Tue Nov 17 18:02:12 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Tue, 17 Nov 2020 18:02:12 GMT Subject: RFR: 6507: Use GraphViz to render stack traces [v3] In-Reply-To: References: Message-ID: > Still need some pruning options to not be insanely slow when having plenty of nodes, but this is a start. Marcus Hirt has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 31 commits: - Merge branch 'master' into graphview - Making spotbugs happier - Formatting - Cleanup - Merge pull request #1 from cimi/graphview 6507: inline graphviz wasm as base64 in js - 6507: inline graphviz wasm as base64 in js This is required to avoid fetching it as an external resource at runtime. - Moving this out for now - to be completed at another time - Removing another one - Removing unused class - Allow more zoom - ... and 21 more: https://git.openjdk.java.net/jmc/compare/c3f49204...469f8d93 ------------- Changes: https://git.openjdk.java.net/jmc/pull/162/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=162&range=02 Stats: 1872 lines in 29 files changed: 1858 ins; 4 del; 10 mod Patch: https://git.openjdk.java.net/jmc/pull/162.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/162/head:pull/162 PR: https://git.openjdk.java.net/jmc/pull/162 From schaturvedi at openjdk.java.net Tue Nov 17 18:40:05 2020 From: schaturvedi at openjdk.java.net (Suchita Chaturvedi) Date: Tue, 17 Nov 2020 18:40:05 GMT Subject: RFR: 4984: Label missing for Focus Selection combobox [v2] In-Reply-To: References: Message-ID: > Added a new label for Selection combo box. This was an issue pointed out by vpat. > > Please review the change. Suchita Chaturvedi has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: - Merge branch 'master' into JMC-4984 - 4984: Label missing for Focus Selection combobox ------------- Changes: https://git.openjdk.java.net/jmc/pull/161/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=161&range=01 Stats: 7 lines in 3 files changed: 6 ins; 0 del; 1 mod Patch: https://git.openjdk.java.net/jmc/pull/161.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/161/head:pull/161 PR: https://git.openjdk.java.net/jmc/pull/161 From duke at openjdk.java.net Wed Nov 18 14:26:50 2020 From: duke at openjdk.java.net (duke) Date: Wed, 18 Nov 2020 14:26:50 GMT Subject: git: openjdk/jmc-graphics: Icon for the graph view (#1) Message-ID: <53adf7de-49fe-4b07-ac5c-d9807f1dbbea@openjdk.java.net> Changeset: f8d146d7 Author: Marcus Hirt Committer: GitHub Date: 2020-11-18 15:26:13 +0000 URL: https://github.com/openjdk/jmc-graphics/commit/f8d146d7 Icon for the graph view (#1) + .gitignore + vector/views/graph.idraw + vector/views/graph.svg From github.com+348973+cimi at openjdk.java.net Thu Nov 19 12:46:13 2020 From: github.com+348973+cimi at openjdk.java.net (Alex Ciminian) Date: Thu, 19 Nov 2020 12:46:13 GMT Subject: RFR: 6787: Simplified stack trace tree model Message-ID: This PR adds a new way to represent JFR data - we aggregate stacktraces into a tree structure which we then allow to be serialised to JSON so we can use it in the `FlameGraphView`. The `Node` and `AggregatableFrame` classes were initially copied from the new graph representation then slightly modified. Once the two implementations are merged and stabilised we should consider unifying these models. We've validated the output of the new JSON serialisation against the previous flame graph JSON implementation, before removing the legacy code. The intermediary commits have tests that check the output is identical for one of our test recording, using the various configuration options (with/without a target attribute, with thread root at top/bottom). ------------- Commit messages: - 6787: remove alphabetical sorting of nodes, use insertion order - 6787: add documentation, fix copyright notices - 6787: remove legacy flamegraph JSON marshalling - 6787: refactor and cleanup new flamegraph JSON marshaller - 6787: add custom display for truncated frames - 6787: remove null root hack from StacktraceTreeModel - 6787: use UNKNOWN_FRAME for truncated stacktraces - 6787: add threadRootAtTop option to StacktraceTreeModel - 6787: make StacktraceTreeModel JSON match existing flame graph - 6787: move stacktrace tree JSON marshalling to flameview module - ... and 2 more: https://git.openjdk.java.net/jmc/compare/5feaf25f...974a229c Changes: https://git.openjdk.java.net/jmc/pull/159/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=159&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-6787 Stats: 1514 lines in 23 files changed: 1061 ins; 441 del; 12 mod Patch: https://git.openjdk.java.net/jmc/pull/159.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/159/head:pull/159 PR: https://git.openjdk.java.net/jmc/pull/159 From hirt at openjdk.java.net Thu Nov 19 14:33:10 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Thu, 19 Nov 2020 14:33:10 GMT Subject: RFR: 6787: Simplified stack trace tree model In-Reply-To: References: Message-ID: On Wed, 11 Nov 2020 17:52:23 GMT, Alex Ciminian wrote: > This PR adds a new way to represent JFR data - we aggregate stacktraces into a tree structure which we then allow to be serialised to JSON so we can use it in the `FlameGraphView`. > > The `Node` and `AggregatableFrame` classes were initially copied from the new graph representation then slightly modified. Once the two implementations are merged and stabilised we should consider unifying these models. > > We've validated the output of the new JSON serialisation against the previous flame graph JSON implementation, before removing the legacy code. The intermediary commits have tests that check the output is identical for one of our test recording, using the various configuration options (with/without a target attribute, with thread root at top/bottom). Changes requested by hirt (Lead). application/org.openjdk.jmc.flightrecorder.flameview/src/main/java/org/openjdk/jmc/flightrecorder/flameview/FlameGraphJSONMarshaller.java line 1: > 1: /* Normally we use initial capital case and the rest lower case for both acronyms and initialisms. You may see exceptions in the code base, since (IIRC) we used to have a different ruler separating them, and also taking into account how long they were, but eventually I believe we settled on initial capital case, the rest lower to keep things simple. application/org.openjdk.jmc.flightrecorder.flameview/src/main/java/org/openjdk/jmc/flightrecorder/flameview/FlameGraphJSONMarshaller.java line 2: > 1: /* > 2: * Copyright (c) 2020, Datadog, Inc. All rights reserved. Per OCA, Oracle copyrights will need to be in all files, and first. See other files. application/tests/org.openjdk.jmc.flightrecorder.flameview.test/build.properties line 2: > 1: # > 2: # Copyright (c) 2020, Datadog, Inc. All rights reserved. Oracle copyright first. application/tests/org.openjdk.jmc.flightrecorder.flameview.test/pom.xml line 3: > 1: > 2: https://unpkg.com/d3-graphviz at 3.1.0/build/d3-graphviz.js 2. https://d3js.org/d3.v5.min.js --> https://d3js.org/d3.v6.min.js 3. https://unpkg.com/@hpcc-js/wasm at 0.3.11/dist/index.js --> https://unpkg.com/@hpcc-js/wasm at 0.3.14/dist/index.js 4. https://unpkg.com/d3-graphviz at 3.0.5/build/d3-graphviz.js --> https://unpkg.com/d3-graphviz at 3.1.0/build/d3-graphviz.js 5. https://unpkg.com/@hpcc-js/wasm at 0.3.11/dist/graphvizlib.wasm --> https://unpkg.com/@hpcc-js/wasm at 0.3.14/dist/graphvizlib.wasm ------------- Marked as reviewed by ghb (Reviewer). PR: https://git.openjdk.java.net/jmc/pull/162 From hirt at openjdk.java.net Wed Nov 25 11:36:55 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 11:36:55 GMT Subject: RFR: 6507: Use GraphViz to render stack traces [v4] In-Reply-To: References: <1xPGkZOZlFPb8OfLamV5Yr_aHqVvwHUeboTHPAT0gqE=.9efc8277-ea81-492d-9eff-75f00e65885f@github.com> Message-ID: On Mon, 23 Nov 2020 13:42:25 GMT, Guru Hb wrote: >> Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: >> >> Fixing review issues > > application/org.openjdk.jmc.flightrecorder.graphview/pom.xml line 68: > >> 66: >> 67: >> 68: https://d3js.org/d3.v5.min.js > > Unless there is incompatibility with latest version, Please update the external js and wasm libraries to > 1. https://unpkg.com/d3-graphviz at 3.0.5/build/d3-graphviz.js --> https://unpkg.com/d3-graphviz at 3.1.0/build/d3-graphviz.js > 2. https://d3js.org/d3.v5.min.js --> https://d3js.org/d3.v6.min.js > 3. https://unpkg.com/@hpcc-js/wasm at 0.3.11/dist/index.js --> https://unpkg.com/@hpcc-js/wasm at 0.3.14/dist/index.js > 4. https://unpkg.com/d3-graphviz at 3.0.5/build/d3-graphviz.js --> https://unpkg.com/d3-graphviz at 3.1.0/build/d3-graphviz.js > 5. https://unpkg.com/@hpcc-js/wasm at 0.3.11/dist/graphvizlib.wasm --> https://unpkg.com/@hpcc-js/wasm at 0.3.14/dist/graphvizlib.wasm Wasm is already at 3.14 and Graphviz is at 3.1.0. Upgrading to d3.v6 seems to make the zooming not work. I'll go with this for now. ------------- PR: https://git.openjdk.java.net/jmc/pull/162 From hirt at openjdk.java.net Wed Nov 25 11:36:57 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 11:36:57 GMT Subject: Integrated: 6507: Use GraphViz to render stack traces In-Reply-To: References: Message-ID: On Mon, 16 Nov 2020 19:58:46 GMT, Marcus Hirt wrote: > Still need some pruning options to not be insanely slow when having plenty of nodes, but this is a start. This pull request has now been integrated. Changeset: 205680f7 Author: Marcus Hirt URL: https://git.openjdk.java.net/jmc/commit/205680f7 Stats: 1892 lines in 29 files changed: 1878 ins; 4 del; 10 mod 6507: Use GraphViz to render stack traces Reviewed-by: mwengner, ghb ------------- PR: https://git.openjdk.java.net/jmc/pull/162 From github.com+28612+gunnarmorling at openjdk.java.net Wed Nov 25 12:19:52 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Wed, 25 Nov 2020 12:19:52 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v2] In-Reply-To: References: Message-ID: <9fiiYMb4m0aDTordP7y327x3DTrxZ7vnn2xzIQkfpPg=.5cefa312-990e-4fa5-8dd3-c099b4bc2428@github.com> On Tue, 24 Nov 2020 08:46:23 GMT, Gunnar Morling wrote: >> @gunnarmorling can you assign jbs https://bugs.openjdk.java.net/browse/JMC-6964 to your name ? > > While I rather should not make any promises, I'd definitely like to stay involved with JMC Agent; e.g. I'd like to make the converter mechanism work. It's your call of course :) No need to rush from my side really, I don't think I _need_ to have that issue assigned in JBS as suggested by @guruhb in order to move forward with this PR? Hey all, so can I do anything else in order to move this one forward? Thanks for any feedback! ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From hirt at openjdk.java.net Wed Nov 25 14:59:54 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 14:59:54 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v2] In-Reply-To: <9fiiYMb4m0aDTordP7y327x3DTrxZ7vnn2xzIQkfpPg=.5cefa312-990e-4fa5-8dd3-c099b4bc2428@github.com> References: <9fiiYMb4m0aDTordP7y327x3DTrxZ7vnn2xzIQkfpPg=.5cefa312-990e-4fa5-8dd3-c099b4bc2428@github.com> Message-ID: <12USAhzmC84OLd0LszZHE3hueGbTXZJfXMtTNxNSOjs=.e5c1445d-b663-43f9-bf72-110ea2619d2d@github.com> On Wed, 25 Nov 2020 12:17:19 GMT, Gunnar Morling wrote: >> While I rather should not make any promises, I'd definitely like to stay involved with JMC Agent; e.g. I'd like to make the converter mechanism work. It's your call of course :) No need to rush from my side really, I don't think I _need_ to have that issue assigned in JBS as suggested by @guruhb in order to move forward with this PR? > > Hey all, so can I do anything else in order to move this one forward? Thanks for any feedback! Nope. It's just waiting on me finding some time. Sorry for the delay. ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From hdafgard at openjdk.java.net Wed Nov 25 15:03:55 2020 From: hdafgard at openjdk.java.net (Henrik =?UTF-8?B?RGFmZ8OlcmQ=?=) Date: Wed, 25 Nov 2020 15:03:55 GMT Subject: RFR: 6690: Find a home for the Flame View in the JMC perspective In-Reply-To: References: Message-ID: On Tue, 24 Nov 2020 17:56:30 GMT, Marcus Hirt wrote: > Adding another plug-in to the default perspective can cause the JVM browser to be loaded _after_ the Flight Recorder UI, making views end up in the wrong place. To avoid this, I added a dependency on the JVM Browser bundle. This is sad, since it was previously easy to, for example, build a JFR-only-file viewer, without even including the JVM browser, JMX Console etc, by simply editing the features. A better long term solution would probably be to include the flame graph in the JFR UI bundle. I suggest using the dependency approach for 8.0.0, since I don't know anyone shipping a partial release of the JMC app, for now. Marked as reviewed by hdafgard (Reviewer). ------------- PR: https://git.openjdk.java.net/jmc/pull/167 From hirt at openjdk.java.net Wed Nov 25 15:06:56 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 15:06:56 GMT Subject: Integrated: 6690: Find a home for the Flame View in the JMC perspective In-Reply-To: References: Message-ID: <7-P-yldLNYmz6tiCsLZ94Be_9stHVll8stYsgdj_dTI=.878cc393-112d-4df7-a944-4161ce9a4961@github.com> On Tue, 24 Nov 2020 17:56:30 GMT, Marcus Hirt wrote: > Adding another plug-in to the default perspective can cause the JVM browser to be loaded _after_ the Flight Recorder UI, making views end up in the wrong place. To avoid this, I added a dependency on the JVM Browser bundle. This is sad, since it was previously easy to, for example, build a JFR-only-file viewer, without even including the JVM browser, JMX Console etc, by simply editing the features. A better long term solution would probably be to include the flame graph in the JFR UI bundle. I suggest using the dependency approach for 8.0.0, since I don't know anyone shipping a partial release of the JMC app, for now. This pull request has now been integrated. Changeset: 73fce3fd Author: Marcus Hirt URL: https://git.openjdk.java.net/jmc/commit/73fce3fd Stats: 15 lines in 2 files changed: 9 ins; 0 del; 6 mod 6690: Find a home for the Flame View in the JMC perspective Reviewed-by: hdafgard ------------- PR: https://git.openjdk.java.net/jmc/pull/167 From hirt at openjdk.java.net Wed Nov 25 15:53:58 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 15:53:58 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v3] In-Reply-To: References: Message-ID: On Sat, 21 Nov 2020 19:52:09 GMT, Gunnar Morling wrote: >> So here's a fresh take on the `Unsafe` / `add-opens` issue for JMC Agent. This still is using `Unsafe`, but I'm using the instrumentation API for opening up the base module within the agent itself, instead of requiring the user to do so. Ideally, we'd still get away from `Unsafe`, but this make the agent easier to use. This is still a draft, would do some more polishing if you all think it's the right approach. Feedback welcome! > > Gunnar Morling has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: > > - 6964: Refactor - Unifying handling of Java version > - 6964: Automatically open base module for accessing Unsafe on JDK 11+ Changes requested by hirt (Lead). agent/src/main/java/org/openjdk/jmc/agent/util/ModuleUtils.java line 3: > 1: /* > 2: * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. > 3: * Copyright (c) 2020 Red Hat Inc. All rights reserved. Comma after year. agent/src/main/java/org/openjdk/jmc/agent/util/ModuleUtils.java line 56: > 54: if (featureVersion >= 11) { > 55: > 56: Method redefineModule = getRedefineModuleMethod(); I am not great with the access controller and running with a security manager, but are these reflective checks and module openings something that would benefit from doPrivileged? Even the (JDK) implementation of the Instrumentation interface is using doPrivileged to do reflective stuff (getting access to premain and agentmain). https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java#L416 https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java#L509 ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From hirt at openjdk.java.net Wed Nov 25 15:53:58 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 15:53:58 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v3] In-Reply-To: References: Message-ID: <1gQJEEd2XCG0okWZfA_0-pZ3SyoB8YqdAU-jlSlCB8w=.06428402-593f-4bb0-80b0-267592dce308@github.com> On Wed, 25 Nov 2020 15:49:31 GMT, Marcus Hirt wrote: >> Gunnar Morling has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: >> >> - 6964: Refactor - Unifying handling of Java version >> - 6964: Automatically open base module for accessing Unsafe on JDK 11+ > > Changes requested by hirt (Lead). > While I rather should not make any promises, I'd definitely like to stay involved with JMC Agent; e.g. I'd like to make the converter mechanism work. It's your call of course :) I'm almost done with that (and a big cleanup). :) ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Wed Nov 25 16:05:54 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Wed, 25 Nov 2020 16:05:54 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v3] In-Reply-To: <1gQJEEd2XCG0okWZfA_0-pZ3SyoB8YqdAU-jlSlCB8w=.06428402-593f-4bb0-80b0-267592dce308@github.com> References: <1gQJEEd2XCG0okWZfA_0-pZ3SyoB8YqdAU-jlSlCB8w=.06428402-593f-4bb0-80b0-267592dce308@github.com> Message-ID: <9g-papQAOUpQYrlEtdX7digdXb49AovEhWPqU2P4NWc=.e7a0b245-7ebc-4ed8-b099-b74bd303537f@github.com> On Wed, 25 Nov 2020 15:50:51 GMT, Marcus Hirt wrote: > I'm almost done with that (and a big cleanup). :) Oh, converters, you mean? That's great. Less to do for me then :) I got one general thought on that though, will start a thread on the ML. ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Wed Nov 25 16:06:00 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Wed, 25 Nov 2020 16:06:00 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v3] In-Reply-To: References: Message-ID: On Wed, 25 Nov 2020 15:48:47 GMT, Marcus Hirt wrote: >> Gunnar Morling has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: >> >> - 6964: Refactor - Unifying handling of Java version >> - 6964: Automatically open base module for accessing Unsafe on JDK 11+ > > agent/src/main/java/org/openjdk/jmc/agent/util/ModuleUtils.java line 56: > >> 54: if (featureVersion >= 11) { >> 55: >> 56: Method redefineModule = getRedefineModuleMethod(); > > I am not great with the access controller and running with a security manager, but are these reflective checks and module openings something that would benefit from doPrivileged? > > Even the (JDK) implementation of the Instrumentation interface is using doPrivileged to do reflective stuff (getting access to premain and agentmain). > https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java#L416 > https://github.com/AdoptOpenJDK/openjdk-jdk11/blob/master/src/java.instrument/share/classes/sun/instrument/InstrumentationImpl.java#L509 Is anyone using the security manager still these days ;) If we wanted to support it, maybe let's tackle that via a separate issue? I think this will need more holistic consideration, there's other places too where a privileged action would be needed (e.g. when obtaining the `Unsafe`). Personally, I don't think it's worth the effort and would wait for user feedback/requirement for it. As one data point, we added SM support for Hibernate Validator and never heard anything about it (well, perhaps it just worked). But we didn't do it for Hibernate ORM, and we didn't hear anything there either. Testing for SM is a rather painful experience, too, as you have JUnit and things like that on the callstack and need to accomodate for that. > agent/src/main/java/org/openjdk/jmc/agent/util/ModuleUtils.java line 3: > >> 1: /* >> 2: * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. >> 3: * Copyright (c) 2020 Red Hat Inc. All rights reserved. > > Comma after year. Will add. ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From hirt at openjdk.java.net Wed Nov 25 16:09:55 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 16:09:55 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v3] In-Reply-To: References: <1gQJEEd2XCG0okWZfA_0-pZ3SyoB8YqdAU-jlSlCB8w=.06428402-593f-4bb0-80b0-267592dce308@github.com> <9g-papQAOUpQYrlEtdX7digdXb49AovEhWPqU2P4NWc=.e7a0b245-7ebc-4ed8-b099-b74bd303537f@github.com> Message-ID: On Wed, 25 Nov 2020 16:06:00 GMT, Marcus Hirt wrote: >>> I'm almost done with that (and a big cleanup). :) >> >> Oh, converters, you mean? That's great. Less to do for me then :) I got one general thought on that though, will start a thread on the ML. > > I did a partial commit here so that you can see where I'm heading with this: > https://github.com/thegreystone/jmc/tree/agentdefaultconverters (Never mind the "default" part of the branch name. Had an idea that just introduced too much complexity - ditched it. :) ) ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From hirt at openjdk.java.net Wed Nov 25 16:09:53 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 16:09:53 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v3] In-Reply-To: <9g-papQAOUpQYrlEtdX7digdXb49AovEhWPqU2P4NWc=.e7a0b245-7ebc-4ed8-b099-b74bd303537f@github.com> References: <1gQJEEd2XCG0okWZfA_0-pZ3SyoB8YqdAU-jlSlCB8w=.06428402-593f-4bb0-80b0-267592dce308@github.com> <9g-papQAOUpQYrlEtdX7digdXb49AovEhWPqU2P4NWc=.e7a0b245-7ebc-4ed8-b099-b74bd303537f@github.com> Message-ID: On Wed, 25 Nov 2020 16:02:44 GMT, Gunnar Morling wrote: >>> While I rather should not make any promises, I'd definitely like to stay involved with JMC Agent; e.g. I'd like to make the converter mechanism work. It's your call of course :) >> >> I'm almost done with that (and a big cleanup). :) > >> I'm almost done with that (and a big cleanup). :) > > Oh, converters, you mean? That's great. Less to do for me then :) I got one general thought on that though, will start a thread on the ML. I did a partial commit here so that you can see where I'm heading with this: https://github.com/thegreystone/jmc/tree/agentdefaultconverters ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From hirt at openjdk.java.net Wed Nov 25 21:22:01 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 21:22:01 GMT Subject: RFR: 6996: Properly support converters Message-ID: Including simple test to verify that the resulting instrumented methods are ok. ------------- Commit messages: - 6996: Properly support converters Changes: https://git.openjdk.java.net/jmc/pull/168/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-6996 Stats: 7223 lines in 52 files changed: 5871 ins; 1044 del; 308 mod Patch: https://git.openjdk.java.net/jmc/pull/168.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/168/head:pull/168 PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Wed Nov 25 21:52:52 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 21:52:52 GMT Subject: RFR: 6973: New Method Profiling Page for JMC In-Reply-To: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> References: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> Message-ID: <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> On Mon, 23 Nov 2020 21:24:45 GMT, Jean-Philippe Bempel wrote: > Tabs for Predecessors and Successors instead of Packages/Classes > > ![JMC_MethodProfiling_Pred](https://user-images.githubusercontent.com/4610701/100017066-a1774200-2dda-11eb-80c1-9113478a307b.png) > > ![JMC_MethodProfiling_Suc](https://user-images.githubusercontent.com/4610701/100017088-aa681380-2dda-11eb-8374-f2e30c8d2b22.png) As discussed in the JMC dev meeting - it would be great to add the "Distinguish Frames By" and "Method Formatting Options" menus to the Top Methods table, unless too painful. ------------- PR: https://git.openjdk.java.net/jmc/pull/165 From hirt at openjdk.java.net Wed Nov 25 23:30:57 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Wed, 25 Nov 2020 23:30:57 GMT Subject: RFR: 6996: Properly support converters In-Reply-To: References: Message-ID: On Wed, 25 Nov 2020 21:18:37 GMT, Marcus Hirt wrote: > Including simple test to verify that the resulting instrumented methods are ok. I'll need to do more validation and have better handling of bad configurations, but will handle that in a bug after this enhancement is in. ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From jzaugg at openjdk.java.net Thu Nov 26 08:33:52 2020 From: jzaugg at openjdk.java.net (Jason Zaugg) Date: Thu, 26 Nov 2020 08:33:52 GMT Subject: RFR: 6973: New Method Profiling Page for JMC In-Reply-To: <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> References: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> Message-ID: <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> On Wed, 25 Nov 2020 21:50:04 GMT, Marcus Hirt wrote: >> Tabs for Predecessors and Successors instead of Packages/Classes >> >> ![JMC_MethodProfiling_Pred](https://user-images.githubusercontent.com/4610701/100017066-a1774200-2dda-11eb-80c1-9113478a307b.png) >> >> ![JMC_MethodProfiling_Suc](https://user-images.githubusercontent.com/4610701/100017088-aa681380-2dda-11eb-8374-f2e30c8d2b22.png) > > As discussed in the JMC dev meeting - it would be great to add the "Distinguish Frames By" and "Method Formatting Options" menus to the Top Methods table, unless too painful. I'm excited to see this! A useful follow up would be to add a new type of FlameView chart as an extra tab in the new panel that shows this data, along the lines of the "Sandwich View" in https://github.com/jlfwong/speedscope#-sandwich ------------- PR: https://git.openjdk.java.net/jmc/pull/165 From jzaugg at openjdk.java.net Thu Nov 26 13:04:54 2020 From: jzaugg at openjdk.java.net (Jason Zaugg) Date: Thu, 26 Nov 2020 13:04:54 GMT Subject: RFR: 6973: New Method Profiling Page for JMC In-Reply-To: <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> References: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> Message-ID: On Thu, 26 Nov 2020 02:48:19 GMT, Jason Zaugg wrote: >> As discussed in the JMC dev meeting - it would be great to add the "Distinguish Frames By" and "Method Formatting Options" menus to the Top Methods table, unless too painful. > > I'm excited to see this! A useful follow up would be to add a new type of FlameView chart as an extra tab in the new panel that shows this data, along the lines of the "Sandwich View" in https://github.com/jlfwong/speedscope#-sandwich The predecessor/successor panel also seems useful for other events (e.g. TLAB allocations). Any plans to make this available outside of the CPU profiling page? ------------- PR: https://git.openjdk.java.net/jmc/pull/165 From jzaugg at openjdk.java.net Thu Nov 26 13:46:55 2020 From: jzaugg at openjdk.java.net (Jason Zaugg) Date: Thu, 26 Nov 2020 13:46:55 GMT Subject: RFR: 6973: New Method Profiling Page for JMC In-Reply-To: References: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> Message-ID: On Thu, 26 Nov 2020 13:01:56 GMT, Jason Zaugg wrote: >> I'm excited to see this! A useful follow up would be to add a new type of FlameView chart as an extra tab in the new panel that shows this data, along the lines of the "Sandwich View" in https://github.com/jlfwong/speedscope#-sandwich > > The predecessor/successor panel also seems useful for other events (e.g. TLAB allocations). Any plans to make this available outside of the CPU profiling page? I would suggest leaving the pred/succ treeviews empty when the more than one row is selected in the top methods pane. Currently, the first selected element is reflected. ------------- PR: https://git.openjdk.java.net/jmc/pull/165 From jzaugg at openjdk.java.net Thu Nov 26 14:17:57 2020 From: jzaugg at openjdk.java.net (Jason Zaugg) Date: Thu, 26 Nov 2020 14:17:57 GMT Subject: RFR: 6973: New Method Profiling Page for JMC In-Reply-To: References: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> Message-ID: On Thu, 26 Nov 2020 13:43:55 GMT, Jason Zaugg wrote: >> The predecessor/successor panel also seems useful for other events (e.g. TLAB allocations). Any plans to make this available outside of the CPU profiling page? > > I would suggest leaving the pred/succ treeviews empty when the more than one row is selected in the top methods pane. Currently, the first selected element is reflected. I've tested with this .jfr file: https://drive.google.com/file/d/1OqMOFLsODHgRPKybUfw7rK7kv3j9fES3/view?usp=sharing Selecting `scala.runtime.Statics.releaseFence()` as the Top Method (source code https://github.com/scala/scala/blob/9a716985fcfbb687a3b4cfe97e8eb1d88a65057d/src/library/scala/runtime/Statics.java#L147-L149) I see Successors that are not called from the method: image I can find no CPU sample events that include this method as a non-leaf element in the stack. Is is possible that something is wrong with the data filtering in the new UI? ------------- PR: https://git.openjdk.java.net/jmc/pull/165 From hirt at openjdk.java.net Thu Nov 26 14:55:54 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Thu, 26 Nov 2020 14:55:54 GMT Subject: RFR: 6973: New Method Profiling Page for JMC In-Reply-To: <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> References: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> Message-ID: On Thu, 26 Nov 2020 02:48:19 GMT, Jason Zaugg wrote: > I'm excited to see this! A useful follow up would be to add a new type of FlameView chart as an extra tab in the new panel that shows this data, along the lines of the "Sandwich View" in https://github.com/jlfwong/speedscope#-sandwich Indeed we should! I added this back in July: https://bugs.openjdk.java.net/browse/JMC-6872 This is a stop-gap measure until we get around to implementing it. :) ------------- PR: https://git.openjdk.java.net/jmc/pull/165 From hirt at openjdk.java.net Thu Nov 26 15:01:54 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Thu, 26 Nov 2020 15:01:54 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v3] In-Reply-To: References: Message-ID: On Sat, 21 Nov 2020 19:52:09 GMT, Gunnar Morling wrote: >> So here's a fresh take on the `Unsafe` / `add-opens` issue for JMC Agent. This still is using `Unsafe`, but I'm using the instrumentation API for opening up the base module within the agent itself, instead of requiring the user to do so. Ideally, we'd still get away from `Unsafe`, but this make the agent easier to use. This is still a draft, would do some more polishing if you all think it's the right approach. Feedback welcome! > > Gunnar Morling has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: > > - 6964: Refactor - Unifying handling of Java version > - 6964: Automatically open base module for accessing Unsafe on JDK 11+ Ok. Let's wait with the security manager stuff until someone requests it then. ------------- Marked as reviewed by hirt (Lead). PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Thu Nov 26 20:55:57 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Thu, 26 Nov 2020 20:55:57 GMT Subject: RFR: 6996: Properly support converters In-Reply-To: References: Message-ID: On Wed, 25 Nov 2020 21:18:37 GMT, Marcus Hirt wrote: > Including simple test to verify that the resulting instrumented methods are ok. A few comments/suggestions inline. Some surely based on my lack of familiarity with the code base, so bear with me ;) agent/src/main/java/org/openjdk/jmc/agent/impl/AbstractConvertable.java line 1: > 1: package org.openjdk.jmc.agent.impl; License header missing? agent/src/main/java/org/openjdk/jmc/agent/converters/FileConverter.java line 51: > 49: return file.getCanonicalPath(); > 50: } catch (Throwable e) { > 51: Agent.getLogger().warning("Agent failed to convert file to String: " + e.getMessage()); Should propagate the original exception instead of just its message? agent/src/main/java/org/openjdk/jmc/agent/impl/ResolvedConvertable.java line 1: > 1: package org.openjdk.jmc.agent.impl; License header missing? agent/src/main/java/org/openjdk/jmc/agent/impl/ResolvedConvertable.java line 10: > 8: public class ResolvedConvertable extends AbstractConvertable implements Convertable { > 9: private final static String CONVERTER_METHOD = "convert"; > 10: private final transient Class converterClass; When is this ResolvedConvertable serialized, i.e. why is this transient? agent/src/main/java/org/openjdk/jmc/agent/impl/ResolvedConvertable.java line 41: > 39: } > 40: for (Method m : converterClass.getDeclaredMethods()) { > 41: if (CONVERTER_METHOD.equals(m.getName())) { Should this not also take the parameter type into account? So to make sure multiple `convert()` methods for different types declared on the same class are invoked correctly based on assignability. agent/src/test/resources/org/openjdk/jmc/agent/converters/test/jfrprobes_template.xml line 86: > 84: > 85: None > 86: org.openjdk.jmc.agent.converters.test.GurkConverterInt Thinking more about this, would it actually make more sense to specify a _method_ here? In the end, that's what we want to identify. That'd allow for usage of existing methods named other than `convert()`. WDYT? core/tests/org.openjdk.jmc.flightrecorder.rules.jdk.test/baseline/Generated_JfrRuleBaseline.xml line 1: > 1: What's the purpose of this and the next file? ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 09:09:55 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 09:09:55 GMT Subject: RFR: 6996: Properly support converters In-Reply-To: References: Message-ID: On Thu, 26 Nov 2020 20:39:18 GMT, Gunnar Morling wrote: >> Including simple test to verify that the resulting instrumented methods are ok. > > agent/src/main/java/org/openjdk/jmc/agent/converters/FileConverter.java line 51: > >> 49: return file.getCanonicalPath(); >> 50: } catch (Throwable e) { >> 51: Agent.getLogger().warning("Agent failed to convert file to String: " + e.getMessage()); > > Should propagate the original exception instead of just its message? I thought it might be annoying, since you know where you've declared them. But perhaps I should - there might be multiple locations. Another variant would be to silently ignore and just return the path, but perhaps you do want to know. ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 09:16:57 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 09:16:57 GMT Subject: RFR: 6996: Properly support converters In-Reply-To: References: Message-ID: On Thu, 26 Nov 2020 20:41:01 GMT, Gunnar Morling wrote: >> Including simple test to verify that the resulting instrumented methods are ok. > > agent/src/main/java/org/openjdk/jmc/agent/impl/ResolvedConvertable.java line 10: > >> 8: public class ResolvedConvertable extends AbstractConvertable implements Convertable { >> 9: private final static String CONVERTER_METHOD = "convert"; >> 10: private final transient Class converterClass; > > When is this ResolvedConvertable serialized, i.e. why is this transient? Ah, was from an earlier version of the code where I let the attributes be able to resolve themselves. Removed. ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 09:27:03 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 09:27:03 GMT Subject: RFR: 6996: Properly support converters In-Reply-To: References: Message-ID: <_PXrK_KJr0RRjQegTOoE9YwKr-9OiuGqZEQQihYuC8w=.333176fb-10c9-461d-84cb-2539afe91a77@github.com> On Thu, 26 Nov 2020 20:43:15 GMT, Gunnar Morling wrote: >> Including simple test to verify that the resulting instrumented methods are ok. > > agent/src/main/java/org/openjdk/jmc/agent/impl/ResolvedConvertable.java line 41: > >> 39: } >> 40: for (Method m : converterClass.getDeclaredMethods()) { >> 41: if (CONVERTER_METHOD.equals(m.getName())) { > > Should this not also take the parameter type into account? So to make sure multiple `convert()` methods for different types declared on the same class are invoked correctly based on assignability. Sure. It will take the first assignable it can find though, not try to find the most specific. You'll have to specify the method explicitly to make that happen. > agent/src/test/resources/org/openjdk/jmc/agent/converters/test/jfrprobes_template.xml line 86: > >> 84: >> 85: None >> 86: org.openjdk.jmc.agent.converters.test.GurkConverterInt > > Thinking more about this, would it actually make more sense to specify a _method_ here? In the end, that's what we want to identify. That'd allow for usage of existing methods named other than `convert()`. WDYT? I was considering it, since it would allow people to have multiple converters to different return types in the same class. It becomes a bit more cumbersome to specify though. Perhaps use convert as the default if only specified as a class, and the method, if specified? > core/tests/org.openjdk.jmc.flightrecorder.rules.jdk.test/baseline/Generated_JfrRuleBaseline.xml line 1: > >> 1: > > What's the purpose of this and the next file? This one was accidentally checked in. I'll remove it and add it to the .gitignore. Good catch. ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 09:34:19 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 09:34:19 GMT Subject: RFR: 6996: Properly support converters [v2] In-Reply-To: References: Message-ID: On Thu, 26 Nov 2020 20:38:46 GMT, Gunnar Morling wrote: >> Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: >> >> Fixes missing license headers, transients and exception > > agent/src/main/java/org/openjdk/jmc/agent/impl/AbstractConvertable.java line 1: > >> 1: package org.openjdk.jmc.agent.impl; > > License header missing? Yep. > agent/src/main/java/org/openjdk/jmc/agent/impl/ResolvedConvertable.java line 1: > >> 1: package org.openjdk.jmc.agent.impl; > > License header missing? Yup. ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 09:34:21 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 09:34:21 GMT Subject: RFR: 6996: Properly support converters [v2] In-Reply-To: References: Message-ID: On Fri, 27 Nov 2020 09:30:51 GMT, Marcus Hirt wrote: >> Including simple test to verify that the resulting instrumented methods are ok. > > Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: > > Fixes missing license headers, transients and exception agent/.settings/org.eclipse.jdt.core.prefs line 4: > 2: org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled > 3: org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate > 4: org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 Note that this will be changed back by @Josh-Matsuoka once the JDK 8 fixes are in. :) agent/src/main/java/org/openjdk/jmc/agent/Agent.java line 60: > 58: * This should be generated as part of the build later. > 59: */ > 60: public final static String VERSION = "0.1.0"; //$NON-NLS-1$ Perhaps we want to bump this to 0.9 or something, signifying that we're getting close to production ready? ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 09:34:18 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 09:34:18 GMT Subject: RFR: 6996: Properly support converters [v2] In-Reply-To: References: Message-ID: > Including simple test to verify that the resulting instrumented methods are ok. Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: Fixes missing license headers, transients and exception ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/168/files - new: https://git.openjdk.java.net/jmc/pull/168/files/663f3fcc..6ad02d70 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=00-01 Stats: 5072 lines in 5 files changed: 71 ins; 4997 del; 4 mod Patch: https://git.openjdk.java.net/jmc/pull/168.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/168/head:pull/168 PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 09:41:09 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 09:41:09 GMT Subject: RFR: 6996: Properly support converters [v3] In-Reply-To: References: Message-ID: > Including simple test to verify that the resulting instrumented methods are ok. Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: Fixing accidental reformat of the copyright notice ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/168/files - new: https://git.openjdk.java.net/jmc/pull/168/files/6ad02d70..301cd691 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=01-02 Stats: 32 lines in 1 file changed: 9 ins; 0 del; 23 mod Patch: https://git.openjdk.java.net/jmc/pull/168.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/168/head:pull/168 PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 14:11:11 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 14:11:11 GMT Subject: RFR: 6996: Properly support converters [v4] In-Reply-To: References: Message-ID: > Including simple test to verify that the resulting instrumented methods are ok. Marcus Hirt has updated the pull request incrementally with two additional commits since the last revision: - Formatting - Fixes, cleanup and more tests ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/168/files - new: https://git.openjdk.java.net/jmc/pull/168/files/301cd691..4ea8707e Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=03 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=02-03 Stats: 695 lines in 24 files changed: 636 ins; 3 del; 56 mod Patch: https://git.openjdk.java.net/jmc/pull/168.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/168/head:pull/168 PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 14:23:54 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 14:23:54 GMT Subject: RFR: 6996: Properly support converters [v4] In-Reply-To: <_PXrK_KJr0RRjQegTOoE9YwKr-9OiuGqZEQQihYuC8w=.333176fb-10c9-461d-84cb-2539afe91a77@github.com> References: <_PXrK_KJr0RRjQegTOoE9YwKr-9OiuGqZEQQihYuC8w=.333176fb-10c9-461d-84cb-2539afe91a77@github.com> Message-ID: On Fri, 27 Nov 2020 09:23:01 GMT, Marcus Hirt wrote: >> agent/src/test/resources/org/openjdk/jmc/agent/converters/test/jfrprobes_template.xml line 86: >> >>> 84: >>> 85: None >>> 86: org.openjdk.jmc.agent.converters.test.GurkConverterInt >> >> Thinking more about this, would it actually make more sense to specify a _method_ here? In the end, that's what we want to identify. That'd allow for usage of existing methods named other than `convert()`. WDYT? > > I was considering it, since it would allow people to have multiple converters to different return types in the same class. It becomes a bit more cumbersome to specify though. Perhaps use convert as the default if only specified as a class, and the method, if specified? Added. >> agent/src/main/java/org/openjdk/jmc/agent/converters/FileConverter.java line 51: >> >>> 49: return file.getCanonicalPath(); >>> 50: } catch (Throwable e) { >>> 51: Agent.getLogger().warning("Agent failed to convert file to String: " + e.getMessage()); >> >> Should propagate the original exception instead of just its message? > > I thought it might be annoying, since you know where you've declared them. But perhaps I should - there might be multiple locations. Another variant would be to silently ignore and just return the path, but perhaps you do want to know. Fixed. ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 14:34:12 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 14:34:12 GMT Subject: RFR: 6996: Properly support converters [v5] In-Reply-To: References: Message-ID: > Including simple test to verify that the resulting instrumented methods are ok. Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: Updated schema ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/168/files - new: https://git.openjdk.java.net/jmc/pull/168/files/4ea8707e..89f3c914 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=04 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=03-04 Stats: 98 lines in 1 file changed: 51 ins; 0 del; 47 mod Patch: https://git.openjdk.java.net/jmc/pull/168.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/168/head:pull/168 PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 15:18:16 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 15:18:16 GMT Subject: RFR: 6996: Properly support converters [v6] In-Reply-To: References: Message-ID: > Including simple test to verify that the resulting instrumented methods are ok. Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: Fixing JMX serialization ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/168/files - new: https://git.openjdk.java.net/jmc/pull/168/files/89f3c914..cdd11798 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=05 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=04-05 Stats: 24 lines in 4 files changed: 21 ins; 0 del; 3 mod Patch: https://git.openjdk.java.net/jmc/pull/168.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/168/head:pull/168 PR: https://git.openjdk.java.net/jmc/pull/168 From github.com+348973+cimi at openjdk.java.net Fri Nov 27 15:39:10 2020 From: github.com+348973+cimi at openjdk.java.net (Alex Ciminian) Date: Fri, 27 Nov 2020 15:39:10 GMT Subject: RFR: 6787: Simplified stack trace tree model [v6] In-Reply-To: References: Message-ID: > This PR adds a new way to represent JFR data - we aggregate stacktraces into a tree structure which we then allow to be serialised to JSON so we can use it in the `FlameGraphView`. > > The `Node` and `AggregatableFrame` classes were initially copied from the new graph representation then slightly modified. Once the two implementations are merged and stabilised we should consider unifying these models. > > We've validated the output of the new JSON serialisation against the previous flame graph JSON implementation, before removing the legacy code. The intermediary commits have tests that check the output is identical for one of our test recording, using the various configuration options (with/without a target attribute, with thread root at top/bottom). Alex Ciminian has updated the pull request incrementally with two additional commits since the last revision: - 6787: fix flame graph inverted stack selection - WIP: pruning ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/159/files - new: https://git.openjdk.java.net/jmc/pull/159/files/90a8143b..48c0522b Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=159&range=05 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=159&range=04-05 Stats: 23 lines in 3 files changed: 16 ins; 0 del; 7 mod Patch: https://git.openjdk.java.net/jmc/pull/159.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/159/head:pull/159 PR: https://git.openjdk.java.net/jmc/pull/159 From github.com+348973+cimi at openjdk.java.net Fri Nov 27 15:47:02 2020 From: github.com+348973+cimi at openjdk.java.net (Alex Ciminian) Date: Fri, 27 Nov 2020 15:47:02 GMT Subject: RFR: 6787: Simplified stack trace tree model [v7] In-Reply-To: References: Message-ID: > This PR adds a new way to represent JFR data - we aggregate stacktraces into a tree structure which we then allow to be serialised to JSON so we can use it in the `FlameGraphView`. > > The `Node` and `AggregatableFrame` classes were initially copied from the new graph representation then slightly modified. Once the two implementations are merged and stabilised we should consider unifying these models. > > We've validated the output of the new JSON serialisation against the previous flame graph JSON implementation, before removing the legacy code. The intermediary commits have tests that check the output is identical for one of our test recording, using the various configuration options (with/without a target attribute, with thread root at top/bottom). Alex Ciminian has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 20 commits: - 6787: merge latest master and resolve conflicts - 6787: fix flame graph inverted stack selection - 6787: use 'not available' message when no events match - 6787: remove explicit nodeId handling and lookup map - 6787: make Node reference children instead of map lookup - 6787: add JSON tests for inverted flamegraphs - 6787: s/JSON/Json/ in all new files - 6787: more fixing of copyright notices - 6787: remove alphabetical sorting of nodes, use insertion order - 6787: add documentation, fix copyright notices - ... and 10 more: https://git.openjdk.java.net/jmc/compare/73fce3fd...3cd7473c ------------- Changes: https://git.openjdk.java.net/jmc/pull/159/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=159&range=06 Stats: 1395 lines in 25 files changed: 943 ins; 441 del; 11 mod Patch: https://git.openjdk.java.net/jmc/pull/159.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/159/head:pull/159 PR: https://git.openjdk.java.net/jmc/pull/159 From github.com+28612+gunnarmorling at openjdk.java.net Fri Nov 27 17:11:57 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Fri, 27 Nov 2020 17:11:57 GMT Subject: RFR: 6996: Properly support converters [v6] In-Reply-To: References: Message-ID: <8iAI58qMxhm5nlVPo-shSqwfxoXZV3qhOswAUfXAaoQ=.e3183220-a97f-47ed-9df0-25c25fc4ccd7@github.com> On Fri, 27 Nov 2020 15:18:16 GMT, Marcus Hirt wrote: >> Including simple test to verify that the resulting instrumented methods are ok. > > Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: > > Fixing JMX serialization core/tests/org.openjdk.jmc.flightrecorder.rules.jdk.test/baseline/JfrRuleBaseline.xml line 1: > 1: Should be excluded still, I think? ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From github.com+28612+gunnarmorling at openjdk.java.net Fri Nov 27 17:22:54 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Fri, 27 Nov 2020 17:22:54 GMT Subject: RFR: 6996: Properly support converters [v6] In-Reply-To: References: Message-ID: On Fri, 27 Nov 2020 15:18:16 GMT, Marcus Hirt wrote: >> Including simple test to verify that the resulting instrumented methods are ok. > > Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: > > Fixing JMX serialization Some more small comments. agent/src/main/java/org/openjdk/jmc/agent/util/TypeUtils.java line 224: > 222: /* > 223: * if (convertable.getConverterClassName() != null) { return false; } > 224: */ A left-over? agent/src/main/java/org/openjdk/jmc/agent/impl/ResolvedConvertable.java line 71: > 69: > 70: public Class getConverterClass() { > 71: return converterClass; I think you could avoid the field by returning `converterMethod.getDeclaringClass()`. agent/src/main/java/org/openjdk/jmc/agent/impl/ResolvedConvertable.java line 87: > 85: for (Method m : converterClass.getDeclaredMethods()) { > 86: if (methodName.equals(m.getName())) { > 87: if ((!Modifier.isStatic(m.getModifiers())) || m.getParameterCount() != 1) { I'd suggest to also filter out abstract (or interface) methods here, with a more meaningful exception as then trying to invoke them later on. ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 17:45:00 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 17:45:00 GMT Subject: RFR: 6996: Properly support converters [v6] In-Reply-To: <8iAI58qMxhm5nlVPo-shSqwfxoXZV3qhOswAUfXAaoQ=.e3183220-a97f-47ed-9df0-25c25fc4ccd7@github.com> References: <8iAI58qMxhm5nlVPo-shSqwfxoXZV3qhOswAUfXAaoQ=.e3183220-a97f-47ed-9df0-25c25fc4ccd7@github.com> Message-ID: <8cP1dvDcaWpEWmXVrA0sh2lxXJrsIZCn5w4nF_wLtC4=.1fa73317-dec0-4d58-bdc0-26729b477231@github.com> On Fri, 27 Nov 2020 17:09:20 GMT, Gunnar Morling wrote: >> Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: >> >> Fixing JMX serialization > > core/tests/org.openjdk.jmc.flightrecorder.rules.jdk.test/baseline/JfrRuleBaseline.xml line 1: > >> 1: > > Should be excluded still, I think? It should at least be added in a separate issue. ;) > agent/src/main/java/org/openjdk/jmc/agent/util/TypeUtils.java line 224: > >> 222: /* >> 223: * if (convertable.getConverterClassName() != null) { return false; } >> 224: */ > > A left-over? Yep. Thanks! ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 18:06:11 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 18:06:11 GMT Subject: RFR: 6996: Properly support converters [v7] In-Reply-To: References: Message-ID: > Including simple test to verify that the resulting instrumented methods are ok. Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: Cleanup and adding more test launchers ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/168/files - new: https://git.openjdk.java.net/jmc/pull/168/files/cdd11798..3ffaa3ec Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=06 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=05-06 Stats: 5012 lines in 6 files changed: 5 ins; 5002 del; 5 mod Patch: https://git.openjdk.java.net/jmc/pull/168.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/168/head:pull/168 PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 18:06:12 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 18:06:12 GMT Subject: RFR: 6996: Properly support converters [v6] In-Reply-To: <8iAI58qMxhm5nlVPo-shSqwfxoXZV3qhOswAUfXAaoQ=.e3183220-a97f-47ed-9df0-25c25fc4ccd7@github.com> References: <8iAI58qMxhm5nlVPo-shSqwfxoXZV3qhOswAUfXAaoQ=.e3183220-a97f-47ed-9df0-25c25fc4ccd7@github.com> Message-ID: On Fri, 27 Nov 2020 17:09:20 GMT, Gunnar Morling wrote: >> Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: >> >> Fixing JMX serialization > > core/tests/org.openjdk.jmc.flightrecorder.rules.jdk.test/baseline/JfrRuleBaseline.xml line 1: > >> 1: > > Should be excluded still, I think? Indeed! ------------- PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Fri Nov 27 18:14:12 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Fri, 27 Nov 2020 18:14:12 GMT Subject: RFR: 6996: Properly support converters [v8] In-Reply-To: References: Message-ID: > Including simple test to verify that the resulting instrumented methods are ok. Marcus Hirt has updated the pull request incrementally with two additional commits since the last revision: - Formatting - Excluding abstract and interface methods ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/168/files - new: https://git.openjdk.java.net/jmc/pull/168/files/3ffaa3ec..b0de6925 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=07 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=06-07 Stats: 9 lines in 2 files changed: 6 ins; 1 del; 2 mod Patch: https://git.openjdk.java.net/jmc/pull/168.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/168/head:pull/168 PR: https://git.openjdk.java.net/jmc/pull/168 From github.com+4610701+jpbempel at openjdk.java.net Sun Nov 29 17:35:52 2020 From: github.com+4610701+jpbempel at openjdk.java.net (Jean-Philippe Bempel) Date: Sun, 29 Nov 2020 17:35:52 GMT Subject: RFR: 6973: New Method Profiling Page for JMC In-Reply-To: References: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> Message-ID: <8CAEXIZLTIn8oLRkIU-Uk33uI0I-Y6jqgB0i0fXXz3U=.a2ef1a32-fdbf-4442-b007-7d1761b2ca6e@github.com> On Thu, 26 Nov 2020 14:15:03 GMT, Jason Zaugg wrote: >> I would suggest leaving the pred/succ treeviews empty when the more than one row is selected in the top methods pane. Currently, the first selected element is reflected. > > I've tested with this .jfr file: https://drive.google.com/file/d/1OqMOFLsODHgRPKybUfw7rK7kv3j9fES3/view?usp=sharing > > Selecting `scala.runtime.Statics.releaseFence()` as the Top Method (source code https://github.com/scala/scala/blob/9a716985fcfbb687a3b4cfe97e8eb1d88a65057d/src/library/scala/runtime/Statics.java#L147-L149) > > I see Successors that are not called from the method: > > image > > I can find no CPU sample events that include this method as a non-leaf element in the stack. > > Is is possible that something is wrong with the data filtering in the new UI? Hi @retronym, there is indeed an issue in successors. I need to rework the stacktrace model to give an accurate successor view ------------- PR: https://git.openjdk.java.net/jmc/pull/165 From github.com+28612+gunnarmorling at openjdk.java.net Sun Nov 29 19:10:07 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Sun, 29 Nov 2020 19:10:07 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v4] In-Reply-To: References: Message-ID: <4IuunpTOKVfZqEjKVBiwGoNTvZUU7BvSFERi5wrDH8I=.5d64d96b-e277-46e5-b5f9-8ba2ba1738e9@github.com> > So here's a fresh take on the `Unsafe` / `add-opens` issue for JMC Agent. This still is using `Unsafe`, but I'm using the instrumentation API for opening up the base module within the agent itself, instead of requiring the user to do so. Ideally, we'd still get away from `Unsafe`, but this make the agent easier to use. This is still a draft, would do some more polishing if you all think it's the right approach. Feedback welcome! Gunnar Morling has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision: 6964: Refactor - Unifying handling of Java version ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/152/files - new: https://git.openjdk.java.net/jmc/pull/152/files/5d4792ff..58d5ab4e Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=152&range=03 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=152&range=02-03 Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.java.net/jmc/pull/152.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/152/head:pull/152 PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Sun Nov 29 19:10:08 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Sun, 29 Nov 2020 19:10:08 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v3] In-Reply-To: References: Message-ID: On Thu, 26 Nov 2020 14:59:05 GMT, Marcus Hirt wrote: >> Gunnar Morling has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: >> >> - 6964: Refactor - Unifying handling of Java version >> - 6964: Automatically open base module for accessing Unsafe on JDK 11+ > > Ok. Let's wait with the security manager stuff until someone requests it then. Ready to go from my PoV. ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Sun Nov 29 19:10:08 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Sun, 29 Nov 2020 19:10:08 GMT Subject: RFR: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ [v3] In-Reply-To: References: Message-ID: On Wed, 25 Nov 2020 16:02:50 GMT, Gunnar Morling wrote: >> agent/src/main/java/org/openjdk/jmc/agent/util/ModuleUtils.java line 3: >> >>> 1: /* >>> 2: * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. >>> 3: * Copyright (c) 2020 Red Hat Inc. All rights reserved. >> >> Comma after year. > > Will add. Comma added. ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+28612+gunnarmorling at openjdk.java.net Sun Nov 29 19:30:59 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Sun, 29 Nov 2020 19:30:59 GMT Subject: RFR: 9999: avoiding NPE for callers of =?UTF-8?B?VHJhbnNmb3JtUmVnaXN0cnkjZ2V0VHJhbnNmb3JtRGF0YSjigKY=?= Message-ID: <7ExVht0ovtyPgWi_PfrFhcwNoSKqeFvT5AsiM-B0-eM=.6bfb1608-1b29-45fc-a72e-df0518a69717@github.com> ?) of no transform data exists @thegreystone, @Josh-Matsuoka, et al., this fixes an NPE in the `Transformer` class if there is no metadata for the given class (we unconditionally try to iterate over the returned list). I noticed this while debugging something else, it seems this NPE gets swallowed elsewhere, but creating it over and over is costly of course. I think never returning null from a collection method is a good practice anyways, so I've changed it accordingly. Could someone log an issue for this, so I can reference it? Thanks! ------------- Commit messages: - 9999: avoiding NPE for callers of TransformRegistry#getTransformData() of no transform data exists Changes: https://git.openjdk.java.net/jmc/pull/169/files Webrev: https://webrevs.openjdk.java.net/?repo=jmc&pr=169&range=00 Issue: https://bugs.openjdk.java.net/browse/JMC-9999 Stats: 38 lines in 3 files changed: 10 ins; 1 del; 27 mod Patch: https://git.openjdk.java.net/jmc/pull/169.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/169/head:pull/169 PR: https://git.openjdk.java.net/jmc/pull/169 From hirt at openjdk.java.net Mon Nov 30 13:56:57 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 30 Nov 2020 13:56:57 GMT Subject: RFR: 6787: Simplified stack trace tree model [v7] In-Reply-To: References: Message-ID: <95FxqbngmBZRUoiIoVL8xEiEv5R6KC8r3rPbWaLBCQ4=.a270d455-3cad-4693-95e2-cc9b20b6058c@github.com> On Thu, 19 Nov 2020 14:30:25 GMT, Marcus Hirt wrote: >> Alex Ciminian has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 20 commits: >> >> - 6787: merge latest master and resolve conflicts >> - 6787: fix flame graph inverted stack selection >> - 6787: use 'not available' message when no events match >> - 6787: remove explicit nodeId handling and lookup map >> - 6787: make Node reference children instead of map lookup >> - 6787: add JSON tests for inverted flamegraphs >> - 6787: s/JSON/Json/ in all new files >> - 6787: more fixing of copyright notices >> - 6787: remove alphabetical sorting of nodes, use insertion order >> - 6787: add documentation, fix copyright notices >> - ... and 10 more: https://git.openjdk.java.net/jmc/compare/73fce3fd...3cd7473c > > Changes requested by hirt (Lead). I'm getting some differences: image ![image](https://user-images.githubusercontent.com/16906077/100618291-ed1a7600-331b-11eb-990e-4bf3e5076655.png) ------------- PR: https://git.openjdk.java.net/jmc/pull/159 From hirt at openjdk.java.net Mon Nov 30 14:06:53 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 30 Nov 2020 14:06:53 GMT Subject: RFR: 6973: New Method Profiling Page for JMC In-Reply-To: <8CAEXIZLTIn8oLRkIU-Uk33uI0I-Y6jqgB0i0fXXz3U=.a2ef1a32-fdbf-4442-b007-7d1761b2ca6e@github.com> References: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> <8CAEXIZLTIn8oLRkIU-Uk33uI0I-Y6jqgB0i0fXXz3U=.a2ef1a32-fdbf-4442-b007-7d1761b2ca6e@github.com> Message-ID: On Sun, 29 Nov 2020 17:33:23 GMT, Jean-Philippe Bempel wrote: >> I've tested with this .jfr file: https://drive.google.com/file/d/1OqMOFLsODHgRPKybUfw7rK7kv3j9fES3/view?usp=sharing >> >> Selecting `scala.runtime.Statics.releaseFence()` as the Top Method (source code https://github.com/scala/scala/blob/9a716985fcfbb687a3b4cfe97e8eb1d88a65057d/src/library/scala/runtime/Statics.java#L147-L149) >> >> I see Successors that are not called from the method: >> >> image >> >> I can find no CPU sample events that include this method as a non-leaf element in the stack. >> >> Is is possible that something is wrong with the data filtering in the new UI? > > Hi @retronym, there is indeed an issue in successors. > I need to rework the stacktrace model to give an accurate successor view Alternatively use the graph model and check the edges from that node. :) ------------- PR: https://git.openjdk.java.net/jmc/pull/165 From ghb at openjdk.java.net Mon Nov 30 15:39:57 2020 From: ghb at openjdk.java.net (Guru Hb) Date: Mon, 30 Nov 2020 15:39:57 GMT Subject: RFR: 6996: Properly support converters [v8] In-Reply-To: References: Message-ID: On Fri, 27 Nov 2020 18:14:12 GMT, Marcus Hirt wrote: >> Including simple test to verify that the resulting instrumented methods are ok. > > Marcus Hirt has updated the pull request incrementally with two additional commits since the last revision: > > - Formatting > - Excluding abstract and interface methods Please update README.md ------------- Changes requested by ghb (Reviewer). PR: https://git.openjdk.java.net/jmc/pull/168 From github.com+28612+gunnarmorling at openjdk.java.net Mon Nov 30 17:18:53 2020 From: github.com+28612+gunnarmorling at openjdk.java.net (Gunnar Morling) Date: Mon, 30 Nov 2020 17:18:53 GMT Subject: Integrated: 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ In-Reply-To: References: Message-ID: On Sun, 1 Nov 2020 09:57:57 GMT, Gunnar Morling wrote: > So here's a fresh take on the `Unsafe` / `add-opens` issue for JMC Agent. This still is using `Unsafe`, but I'm using the instrumentation API for opening up the base module within the agent itself, instead of requiring the user to do so. Ideally, we'd still get away from `Unsafe`, but this make the agent easier to use. This is still a draft, would do some more polishing if you all think it's the right approach. Feedback welcome! This pull request has now been integrated. Changeset: 7127e403 Author: Gunnar Morling Committer: Guru Hb URL: https://git.openjdk.java.net/jmc/commit/7127e403 Stats: 292 lines in 8 files changed: 203 ins; 75 del; 14 mod 6964: [Agent] Automatically open base module for accessing Unsafe on JDK 11+ Reviewed-by: hirt ------------- PR: https://git.openjdk.java.net/jmc/pull/152 From github.com+348973+cimi at openjdk.java.net Mon Nov 30 18:54:12 2020 From: github.com+348973+cimi at openjdk.java.net (Alex Ciminian) Date: Mon, 30 Nov 2020 18:54:12 GMT Subject: RFR: 6787: Simplified stack trace tree model [v8] In-Reply-To: References: Message-ID: <7jaeNaZWDn8UGzq4DItHAfmSPMFTOEfcPpjhRsojbBY=.60dfd7e7-59c3-46d4-a912-95c47bef41ba@github.com> > This PR adds a new way to represent JFR data - we aggregate stacktraces into a tree structure which we then allow to be serialised to JSON so we can use it in the `FlameGraphView`. > > The `Node` and `AggregatableFrame` classes were initially copied from the new graph representation then slightly modified. Once the two implementations are merged and stabilised we should consider unifying these models. > > We've validated the output of the new JSON serialisation against the previous flame graph JSON implementation, before removing the legacy code. The intermediary commits have tests that check the output is identical for one of our test recording, using the various configuration options (with/without a target attribute, with thread root at top/bottom). Alex Ciminian has updated the pull request incrementally with one additional commit since the last revision: 6787: tolerate the UNKNOWN_FRAME type inside the flame graph ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/159/files - new: https://git.openjdk.java.net/jmc/pull/159/files/3cd7473c..4773236c Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=159&range=07 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=159&range=06-07 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.java.net/jmc/pull/159.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/159/head:pull/159 PR: https://git.openjdk.java.net/jmc/pull/159 From github.com+348973+cimi at openjdk.java.net Mon Nov 30 19:04:54 2020 From: github.com+348973+cimi at openjdk.java.net (Alex Ciminian) Date: Mon, 30 Nov 2020 19:04:54 GMT Subject: RFR: 6787: Simplified stack trace tree model [v8] In-Reply-To: <95FxqbngmBZRUoiIoVL8xEiEv5R6KC8r3rPbWaLBCQ4=.a270d455-3cad-4693-95e2-cc9b20b6058c@github.com> References: <95FxqbngmBZRUoiIoVL8xEiEv5R6KC8r3rPbWaLBCQ4=.a270d455-3cad-4693-95e2-cc9b20b6058c@github.com> Message-ID: <1YZKsZgHqYkxSPy3a-ecOzuySrtD9RlBFWP9c14B164=.d019ea5e-263d-4552-add6-bbebeea23d99@github.com> On Mon, 30 Nov 2020 13:54:39 GMT, Marcus Hirt wrote: >> Changes requested by hirt (Lead). > > I'm getting some differences: > image > ![image](https://user-images.githubusercontent.com/16906077/100618291-ed1a7600-331b-11eb-990e-4bf3e5076655.png) ?? Good catch and thanks for providing the example! The difference between the two is `~ UNCLASSIFIABLE ~` frames showing up inside the flamegraph in the new version compared to the original where they don't. The stacks match up in both, it's just that some frames are being replaced with the sentinel value because they have `IMCFrame.Type.UNKNOWN`. The check for truncated stacks in the tree model version is different from the original since `AggregatableFrame` doesn't expose the internal `IMCFrame` so can't directly check `frame == UNKNOWN_FRAME`. (Disclaimer: I eyeballed this, I didn't revert to the version prior to me cleaning up the code where I could actually test the outputs, but I think the above is correct). I made a fix that seems to work: besides the type, I now also check the frame name we would display and if that's equal to `.()` (what I noticed to be the name when we don't use `~ UNCLASSIFIABLE ~`) then we're looking at a truncated stack. So now we have this: if (frame.getType().equals(IMCFrame.Type.UNKNOWN) && frame.getHumanReadableShortString().equals(".()")) { Please tell me if there's a better way to do this ?? Another idea I had was to create sentinel AggregatableFrames and check against those, but that felt more complicated than just adding this extra condition. ------------- PR: https://git.openjdk.java.net/jmc/pull/159 From hirt at openjdk.java.net Mon Nov 30 20:08:13 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 30 Nov 2020 20:08:13 GMT Subject: RFR: 6996: Properly support converters [v9] In-Reply-To: References: Message-ID: > Including simple test to verify that the resulting instrumented methods are ok. Marcus Hirt has updated the pull request incrementally with one additional commit since the last revision: Updated readme ------------- Changes: - all: https://git.openjdk.java.net/jmc/pull/168/files - new: https://git.openjdk.java.net/jmc/pull/168/files/b0de6925..111b608d Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=08 - incr: https://webrevs.openjdk.java.net/?repo=jmc&pr=168&range=07-08 Stats: 11 lines in 1 file changed: 7 ins; 0 del; 4 mod Patch: https://git.openjdk.java.net/jmc/pull/168.diff Fetch: git fetch https://git.openjdk.java.net/jmc pull/168/head:pull/168 PR: https://git.openjdk.java.net/jmc/pull/168 From hirt at openjdk.java.net Mon Nov 30 20:14:54 2020 From: hirt at openjdk.java.net (Marcus Hirt) Date: Mon, 30 Nov 2020 20:14:54 GMT Subject: RFR: 6973: New Method Profiling Page for JMC In-Reply-To: References: <5JtLeMi4opKYmuoYDPClZ1I5CVQCd6rVUJMfpG6rQuU=.4683d025-c3b9-430c-ac6d-ea6de1fb1212@github.com> <5woFOpRcLWPu85ToI2hr31IbKWxnHdi_LpKGFnMzG90=.ece871f2-cda5-4c6a-9d8c-df9482853111@github.com> <5xgQHjNbTb4jNmFb9uOmIh5GHqEeSgYPGbg34L_K_-o=.f85c95b4-1dff-4b9e-be51-65402a6b05a7@github.com> <8CAEXIZLTIn8oLRkIU-Uk33uI0I-Y6jqgB0i0fXXz3U=.a2ef1a32-fdbf-4442-b007-7d1761b2ca6e@github.com> Message-ID: <8tcv3Cl9AOqq4EfhZl8OA4_BX6wKG1vAr8YHB_NJLpw=.b5c32b52-08a9-447d-a549-c3642895d409@github.com> On Mon, 30 Nov 2020 14:04:38 GMT, Marcus Hirt wrote: > Alternatively use the graph model and check the edges from that node. :) So, I'm just tired today. Thought a few seconds earlier today and sure, a graph model would have been ok if just searching for the immediate successors / predecessors, but building a custom tree is of course nicer for following the call chains in a tree component. Forgot to update here. ------------- PR: https://git.openjdk.java.net/jmc/pull/165