From sundararajan.athijegannathan at oracle.com Thu May 5 02:16:07 2016 From: sundararajan.athijegannathan at oracle.com (Sundararajan Athijegannathan) Date: Thu, 5 May 2016 07:46:07 +0530 Subject: CodeTools proposal: "BTrace" Message-ID: Name: BTrace Summary: A byte code instrumentation based dynamic tracing tool for the Java platform. Proposed by: Sundararajan Athijegannathan Rationale: BTrace is already an Open Source project located @ kenai.com https://kenai.com/projects/btrace This is not a proposal for a new project, it is a proposal for a transfer of the BTrace (kenai.com) project into the OpenJDK CodeTools community, and moderation under OpenJDK bylaws. BTrace is a safe, dynamic tracing tool for the Java platform. BTrace can be used to dynamically trace a running Java program (similar to DTrace for OpenSolaris applications and OS). BTrace dynamically instruments the classes of the target application to inject tracing code ("bytecode tracing"). Tracing code is expressed in Java programming language. BTrace is developed under GPLv2+CP. I started the BTrace (kenai.com) project by June 2009. Jarsolav Bachorik [CC'ed] has contributed significantly to BTrace. He has been maintaining & improving btrace. We expect to continue this charter through the inclusion of BTrace as a OpenJDK/codetools sub-project. Regards, -Sundar From jonathan.gibbons at oracle.com Thu May 5 14:48:29 2016 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 05 May 2016 07:48:29 -0700 Subject: CodeTools proposal: "BTrace" In-Reply-To: References: Message-ID: <572B5D3D.5020901@oracle.com> Sundar, Thanks for the proposal. -- Jon On 05/04/2016 07:16 PM, Sundararajan Athijegannathan wrote: > Name: BTrace > > Summary: A byte code instrumentation based dynamic tracing tool for the > Java platform. > > Proposed by: Sundararajan Athijegannathan > > Rationale: BTrace is already an Open Source project located @ kenai.com > > https://kenai.com/projects/btrace > > This is not a proposal for a new project, it is a proposal for a > transfer of the BTrace (kenai.com) project into the OpenJDK CodeTools > community, and moderation under OpenJDK bylaws. > > BTrace is a safe, dynamic tracing tool for the Java platform. BTrace can > be used to dynamically trace a running > Java program (similar to DTrace for OpenSolaris applications and OS). > BTrace dynamically instruments the classes > of the target application to inject tracing code ("bytecode tracing"). > Tracing code is expressed in Java programming language. BTrace is > developed under GPLv2+CP. > > I started the BTrace (kenai.com) project by June 2009. Jarsolav Bachorik > [CC'ed] has contributed significantly to BTrace. > He has been maintaining & improving btrace. We expect to continue this > charter through the inclusion of BTrace as a OpenJDK/codetools sub-project. > > Regards, > -Sundar From huaming.li at oracle.com Fri May 6 03:43:12 2016 From: huaming.li at oracle.com (Hamlin Li) Date: Fri, 6 May 2016 11:43:12 +0800 Subject: JDK 9 RFR of JDK-8156176: Mark GenModuleInfo.java and ModuleTest.java as intermittently failing, demote to tier 2 Message-ID: <572C12D0.507@oracle.com> tools/jdeps/modules/GenModuleInfo.java tools/jdeps/modules/ModuleTest.java (from langtools/test) These two tests are known to fail intermittently (JDK-8153481), they should be marked accordingly with @key intermittent jtreg tag in the test file, and should be demoted from tier 1 to tier 2 until mentioned issue resolved. bug: https://bugs.openjdk.java.net/browse/JDK-8156176 webrev: http://cr.openjdk.java.net/~mli/8156176/webrev.00/ Thank you -Hamlin diff -r eddb2c2a831d test/TEST.groups --- a/test/TEST.groups Thu May 05 16:36:00 2016 -0700 +++ b/test/TEST.groups Thu May 05 20:27:58 2016 -0700 @@ -28,11 +28,15 @@ jdk \ lib \ tools \ - -jdk/jshell/ToolReloadTest.java + -jdk/jshell/ToolReloadTest.java \ + -tools/jdeps/modules/GenModuleInfo.java \ + -tools/jdeps/modules/ModuleTest.java # (Almost) no langtools tests are tier 2. tier2 = \ - jdk/jshell/ToolReloadTest.java + jdk/jshell/ToolReloadTest.java \ + tools/jdeps/modules/GenModuleInfo.java \ + tools/jdeps/modules/ModuleTest.java # No langtools tests are tier 3 either. tier3 = diff -r eddb2c2a831d test/tools/jdeps/modules/GenModuleInfo.java --- a/test/tools/jdeps/modules/GenModuleInfo.java Thu May 05 16:36:00 2016 -0700 +++ b/test/tools/jdeps/modules/GenModuleInfo.java Thu May 05 20:27:58 2016 -0700 @@ -28,6 +28,7 @@ * @build CompilerUtils * @modules jdk.jdeps/com.sun.tools.jdeps * @run testng GenModuleInfo + * @key intermittent */ import java.io.*; diff -r eddb2c2a831d test/tools/jdeps/modules/ModuleTest.java --- a/test/tools/jdeps/modules/ModuleTest.java Thu May 05 16:36:00 2016 -0700 +++ b/test/tools/jdeps/modules/ModuleTest.java Thu May 05 20:27:58 2016 -0700 @@ -28,6 +28,7 @@ * @build CompilerUtils * @modules jdk.jdeps/com.sun.tools.jdeps * @run testng ModuleTest + * @key intermittent */ import java.io.PrintWriter; From mandy.chung at oracle.com Fri May 6 05:34:26 2016 From: mandy.chung at oracle.com (Mandy Chung) Date: Thu, 5 May 2016 22:34:26 -0700 Subject: JDK 9 RFR of JDK-8156176: Mark GenModuleInfo.java and ModuleTest.java as intermittently failing, demote to tier 2 In-Reply-To: <572C12D0.507@oracle.com> References: <572C12D0.507@oracle.com> Message-ID: <27C5EC78-FA96-4E92-80FB-2232414B48A8@oracle.com> Hi Hamlin, code-tools-dev is not the right group for jdeps. This can send to core-libs-dev. Can you put them in ProblemList instead? I?m working on jdeps fixes and will resolve these issues. Mandy > On May 5, 2016, at 8:43 PM, Hamlin Li wrote: > > tools/jdeps/modules/GenModuleInfo.java > tools/jdeps/modules/ModuleTest.java > (from langtools/test) > > These two tests are known to fail intermittently (JDK-8153481), they should be marked accordingly with @key intermittent jtreg tag in the test file, and should be demoted from tier 1 to tier 2 until mentioned issue resolved. > > bug: https://bugs.openjdk.java.net/browse/JDK-8156176 > webrev: http://cr.openjdk.java.net/~mli/8156176/webrev.00/ > > Thank you > -Hamlin > > diff -r eddb2c2a831d test/TEST.groups > --- a/test/TEST.groups Thu May 05 16:36:00 2016 -0700 > +++ b/test/TEST.groups Thu May 05 20:27:58 2016 -0700 > @@ -28,11 +28,15 @@ > jdk \ > lib \ > tools \ > - -jdk/jshell/ToolReloadTest.java > + -jdk/jshell/ToolReloadTest.java \ > + -tools/jdeps/modules/GenModuleInfo.java \ > + -tools/jdeps/modules/ModuleTest.java > > # (Almost) no langtools tests are tier 2. > tier2 = \ > - jdk/jshell/ToolReloadTest.java > + jdk/jshell/ToolReloadTest.java \ > + tools/jdeps/modules/GenModuleInfo.java \ > + tools/jdeps/modules/ModuleTest.java > > # No langtools tests are tier 3 either. > tier3 = > diff -r eddb2c2a831d test/tools/jdeps/modules/GenModuleInfo.java > --- a/test/tools/jdeps/modules/GenModuleInfo.java Thu May 05 16:36:00 2016 -0700 > +++ b/test/tools/jdeps/modules/GenModuleInfo.java Thu May 05 20:27:58 2016 -0700 > @@ -28,6 +28,7 @@ > * @build CompilerUtils > * @modules jdk.jdeps/com.sun.tools.jdeps > * @run testng GenModuleInfo > + * @key intermittent > */ > > import java.io.*; > diff -r eddb2c2a831d test/tools/jdeps/modules/ModuleTest.java > --- a/test/tools/jdeps/modules/ModuleTest.java Thu May 05 16:36:00 2016 -0700 > +++ b/test/tools/jdeps/modules/ModuleTest.java Thu May 05 20:27:58 2016 -0700 > @@ -28,6 +28,7 @@ > * @build CompilerUtils > * @modules jdk.jdeps/com.sun.tools.jdeps > * @run testng ModuleTest > + * @key intermittent > */ > > import java.io.PrintWriter; > From daniel.fuchs at oracle.com Fri May 6 14:48:20 2016 From: daniel.fuchs at oracle.com (Daniel Fuchs) Date: Fri, 6 May 2016 16:48:20 +0200 Subject: webrev -f failing on Mac In-Reply-To: <56C746DF.80603@oracle.com> References: <56C73C32.3040404@oracle.com> <56C746DF.80603@oracle.com> Message-ID: <923df6bc-3acd-48d3-3bdf-076c89bb472a@oracle.com> Hi Pete, Webrev -f no longer uses 'forest', now it uses 'trees'. The 'forest' extension does not appear to be working properly with recent mercurial versions. You should remove forest from your .hgrc if you have enabled it. For trees to work correctly, your repository forest should be first seeded. If you run webrev -f in a repository that has not been seeded for trees it will print a warning message: WARNING: -f flag provided but no subtree configured. consider running 'hg tconfig --set --walk --depth' Just run 'hg tconfig --set --walk --depth' from the root of the forest and run webrev again. Hope this helps, -- daniel On 19/02/16 17:46, Pete Brunet wrote: > Hi, I'd like to create a multi-repo forest webrev using webrev -f. I > just tried that for the first time on Mac and it doesn't work. > > I followed instructions here: > https://www.mercurial-scm.org/wiki/ForestExtension > > and used forest.py from the suggested link and that site indicates rev > 0.9.1, or at least that's the latest tag. The last commit was 10/9/11. > > I suspect it's incompatible with my version of Mercurial, 3.0.1 > https://bitbucket.org/gxti/hgforest/issues/3/hgforest-incompatible-w-mercurial-23 > > Is the forest extension still in use? If not is there another solution > to a forest wide webrev? > > Pete > > ptb-mbp-2:client petebrunet$ ksh ~/bin/webrev.ksh -f > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > SCM detected: mercurial > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > File list from hg foutgoing ... > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > hg: unknown command 'foutgoing' > > No outgoing, perhaps you haven't commited. > File list from hg fstatus -mard ... Done. > Workspace: /Users/petebrunet/JDK9/JDK-8076554/client > Output to: /Users/petebrunet/JDK9/JDK-8076554/client/webrev > Output Files: > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "Mercurial" > Mercurial > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "basic" > basic > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "add" > add > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "annotate" > annotate > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "clone" > clone > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "commit" > commit > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "diff" > diff > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "export" > export > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "forget" > forget > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "init" > init > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "log" > log > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "merge" > merge > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "pull" > pull > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "push" > push > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "remove" > remove > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "serve" > serve > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "status" > status > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "summary" > summary > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tclone" > tclone > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tlog" > tlog > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tpull" > tpull > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tpush" > tpush > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tstatus" > tstatus > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tupdate" > tupdate > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "update" > update > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "view" > view > *** Error: file not in parent or child > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "use" > use > *** Error: file not in parent or child > index.html: *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "Mercurial" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "basic" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "add" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "annotate" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "clone" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "commit" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "diff" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "export" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "forget" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "init" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "log" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "merge" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "pull" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "push" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "remove" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "serve" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "status" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "summary" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tclone" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tlog" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tpull" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tpush" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tstatus" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "tupdate" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "update" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "view" > *** failed to import extension forest from > /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo > abort: cannot follow file not in parent revision: "use" > Done. > Output to: /Users/petebrunet/JDK9/JDK-8076554/client/webrev > > From daniel.fuchs at oracle.com Fri May 6 14:52:12 2016 From: daniel.fuchs at oracle.com (Daniel Fuchs) Date: Fri, 6 May 2016 16:52:12 +0200 Subject: webrev -f failing on Mac In-Reply-To: <923df6bc-3acd-48d3-3bdf-076c89bb472a@oracle.com> References: <56C73C32.3040404@oracle.com> <56C746DF.80603@oracle.com> <923df6bc-3acd-48d3-3bdf-076c89bb472a@oracle.com> Message-ID: <6d9d3e36-6229-2498-f6d2-e73c3e05b186@oracle.com> On 06/05/16 16:48, Daniel Fuchs wrote: > Hi Pete, > > Webrev -f no longer uses 'forest', now it uses 'trees'. Forgot to point to the trees extension: http://openjdk.java.net/projects/code-tools/trees/ See instruction there on how to enable trees in your ~/.hgrc best regards, -- daniel > The 'forest' extension does not appear to be working properly > with recent mercurial versions. > > You should remove forest from your .hgrc if you have enabled it. > For trees to work correctly, your repository forest should be first > seeded. > > If you run webrev -f in a repository that has not been seeded for > trees it will print a warning message: > > WARNING: -f flag provided but no subtree configured. > consider running 'hg tconfig --set --walk --depth' > > Just run 'hg tconfig --set --walk --depth' from the root > of the forest and run webrev again. > > Hope this helps, > > -- daniel > > On 19/02/16 17:46, Pete Brunet wrote: >> Hi, I'd like to create a multi-repo forest webrev using webrev -f. I >> just tried that for the first time on Mac and it doesn't work. >> >> I followed instructions here: >> https://www.mercurial-scm.org/wiki/ForestExtension >> >> and used forest.py from the suggested link and that site indicates rev >> 0.9.1, or at least that's the latest tag. The last commit was 10/9/11. >> >> I suspect it's incompatible with my version of Mercurial, 3.0.1 >> https://bitbucket.org/gxti/hgforest/issues/3/hgforest-incompatible-w-mercurial-23 >> >> >> Is the forest extension still in use? If not is there another solution >> to a forest wide webrev? >> >> Pete >> >> ptb-mbp-2:client petebrunet$ ksh ~/bin/webrev.ksh -f >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> SCM detected: mercurial >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> File list from hg foutgoing ... >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> hg: unknown command 'foutgoing' >> >> No outgoing, perhaps you haven't commited. >> File list from hg fstatus -mard ... Done. >> Workspace: /Users/petebrunet/JDK9/JDK-8076554/client >> Output to: /Users/petebrunet/JDK9/JDK-8076554/client/webrev >> Output Files: >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "Mercurial" >> Mercurial >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "basic" >> basic >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "add" >> add >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "annotate" >> annotate >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "clone" >> clone >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "commit" >> commit >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "diff" >> diff >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "export" >> export >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "forget" >> forget >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "init" >> init >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "log" >> log >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "merge" >> merge >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "pull" >> pull >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "push" >> push >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "remove" >> remove >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "serve" >> serve >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "status" >> status >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "summary" >> summary >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tclone" >> tclone >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tlog" >> tlog >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tpull" >> tpull >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tpush" >> tpush >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tstatus" >> tstatus >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tupdate" >> tupdate >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "update" >> update >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "view" >> view >> *** Error: file not in parent or child >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "use" >> use >> *** Error: file not in parent or child >> index.html: *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "Mercurial" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "basic" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "add" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "annotate" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "clone" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "commit" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "diff" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "export" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "forget" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "init" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "log" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "merge" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "pull" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "push" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "remove" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "serve" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "status" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "summary" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tclone" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tlog" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tpull" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tpush" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tstatus" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "tupdate" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "update" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "view" >> *** failed to import extension forest from >> /Users/petebrunet/hg-extensions/forest/forest.py: No module named repo >> abort: cannot follow file not in parent revision: "use" >> Done. >> Output to: /Users/petebrunet/JDK9/JDK-8076554/client/webrev >> >> > From iris.clark at oracle.com Fri May 6 17:12:57 2016 From: iris.clark at oracle.com (Iris Clark) Date: Fri, 6 May 2016 10:12:57 -0700 (PDT) Subject: webrev -f failing on Mac In-Reply-To: <923df6bc-3acd-48d3-3bdf-076c89bb472a@oracle.com> References: <56C73C32.3040404@oracle.com> <56C746DF.80603@oracle.com> <923df6bc-3acd-48d3-3bdf-076c89bb472a@oracle.com> Message-ID: <98e53953-9f00-4461-a6e0-7e13f6bd5168@default> Hi. > The 'forest' extension does not appear to be working properly with > recent mercurial versions. The forest extension has been unsupported for some time. During the OpenJDK server migration in March 2014, support was removed as part of the upgrade to Hg 2.6.3. See this announcement [0] for details. If you provide a sample invocation of webrev, I'll add it to this page: http://openjdk.java.net/guide/webrevHelp.html Thanks, iris [0] http://mail.openjdk.java.net/pipermail/announce/2014-March/000164.html -----Original Message----- From: Daniel Fuchs Sent: Friday, May 06, 2016 7:48 AM To: Pete Brunet; code-tools-dev at openjdk.java.net Subject: Re: webrev -f failing on Mac Hi Pete, Webrev -f no longer uses 'forest', now it uses 'trees'. The 'forest' extension does not appear to be working properly with recent mercurial versions. You should remove forest from your .hgrc if you have enabled it. For trees to work correctly, your repository forest should be first seeded. If you run webrev -f in a repository that has not been seeded for trees it will print a warning message: WARNING: -f flag provided but no subtree configured. consider running 'hg tconfig --set --walk --depth' Just run 'hg tconfig --set --walk --depth' from the root of the forest and run webrev again. Hope this helps, -- daniel From peter.brunet at oracle.com Tue May 10 14:10:00 2016 From: peter.brunet at oracle.com (Pete Brunet) Date: Tue, 10 May 2016 09:10:00 -0500 Subject: webrev -f failing on Mac In-Reply-To: <98e53953-9f00-4461-a6e0-7e13f6bd5168@default> References: <56C73C32.3040404@oracle.com> <56C746DF.80603@oracle.com> <923df6bc-3acd-48d3-3bdf-076c89bb472a@oracle.com> <98e53953-9f00-4461-a6e0-7e13f6bd5168@default> Message-ID: <5731EBB8.4000200@oracle.com> Thanks Iris and Daniel, I've moved on to trees; that works very well. Pete On 5/6/16 12:12 PM, Iris Clark wrote: > Hi. > >> The 'forest' extension does not appear to be working properly with >> recent mercurial versions. > The forest extension has been unsupported for some time. During the > OpenJDK server migration in March 2014, support was removed as part of > the upgrade to Hg 2.6.3. See this announcement [0] for details. > > If you provide a sample invocation of webrev, I'll add it to this page: > > http://openjdk.java.net/guide/webrevHelp.html > > Thanks, > iris > > [0] http://mail.openjdk.java.net/pipermail/announce/2014-March/000164.html > > -----Original Message----- > From: Daniel Fuchs > Sent: Friday, May 06, 2016 7:48 AM > To: Pete Brunet; code-tools-dev at openjdk.java.net > Subject: Re: webrev -f failing on Mac > > Hi Pete, > > Webrev -f no longer uses 'forest', now it uses 'trees'. > The 'forest' extension does not appear to be working properly with recent mercurial versions. > > You should remove forest from your .hgrc if you have enabled it. > For trees to work correctly, your repository forest should be first seeded. > > If you run webrev -f in a repository that has not been seeded for trees it will print a warning message: > > WARNING: -f flag provided but no subtree configured. > consider running 'hg tconfig --set --walk --depth' > > Just run 'hg tconfig --set --walk --depth' from the root of the forest and run webrev again. > > Hope this helps, > > -- daniel From adinn at redhat.com Tue May 31 11:02:50 2016 From: adinn at redhat.com (Andrew Dinn) Date: Tue, 31 May 2016 12:02:50 +0100 Subject: Java stack unwinder for Linux + gdb7.10+ Message-ID: <574D6F5A.1090206@redhat.com> What's this all about? ---------------------- Recently, I have been working on implementing support for unwinding Java stacks in gdb using the new python stack unwinder API provided from gdb 7.10.1 onwards. I have managed to provide a pure python solution i.e. one that that needs no modifications to the VM itself. So, if you use gdb to debug operation of the JVM then this implementation will allow you to use the bt command as $DEITY (and, indeed, the gdb team) intended. Attached at the bottom of this note is a before and after showing how backtraces look without/with this package installed. Note that the unwinder works when using gdb to debug either a live process or a core file. Also, note that at present gdb only uses python unwinders to display frame info underneath the bt command. I am working with the gdb devs to see if they can extend the use of the unwinder to other situations e.g. to display the current frame when single-stepping. Can I try it out? ----------------- Yes, please do! Indeed, I am posting this to jdk9-dev because I want as many people as possible to try out the unwinder and provide feedback on how it works. So, please use it and respond -- positive or negative I would love to hear what you think. I'm happy to hear offline or on this list. You choose whether or not you think others on this list might want to hear your comments. How do I obtain/use it? ----------------------- The unwinder code is available from the following hg repo http://icedtea.classpath.org/people/adinn/unwinder See the README in that repo for details of how to install and use it (gdb will auto-load it once you have configured things correctly) To summarize some important details: The extension requires gdb 7.10+ and you there are two unwinder implementations, one for jdk8 and one for jdk9. The jdk8 unwinder should work for any jdk8 built from the jdk8u repo. In particular, it will work for /product releases/ available with your Linux distro so long as the distro supports installation of minimal debuginfo for those releases. For example, if you are using RHEL or fedora then you can simply debuginfo-install the debug info corresponding to your jdk8 java package and then install the uinwinder under /etc/alternatives/java_sdk_1.8.0. If you want to use it with your own jdk8 build then you need to build a debug release which includes a libjvm.debuginfo product (well, I guess you could always hack the product make process so it generates libjvm.debuginfo ). The jdk9 unwinder will only work for your own debug builds and even then only for builds which include the b119 tag. It doesn't work for product builds because ... well, there are no product builds available from any distros just yet which, a fortiori, means there are no product builds where you can install minimal debug info. Unfortunately, that includes the currently available early access program builds which don't ship libjvm.debuginfo. Ok, so why also the b119 restriction? That's because between b118 and b119 the stack and code heap layouts changed and this required the unwinder code to change accordingly. An older version of the unwinder did work with b118 and earlier builds but tempus fugit, hey ho .... How does it do that? -------------------- For those who are curious the python code is your friend (apologies for my python noobness -- I mean, eeeuurrrggghhh, python :-). Basically, the unwinder works without change to the JVM because it understands a few details of how: the code cache is laid out code blobs/methods are organised bci-to-line number maps are organized code address-to-bci maps are organized So, essentially, it uses the gdb inferior access functions to poke around in JVM memory, allowing it to work out what the state of the stack is and what method, file, bci and line number a specific instruction address corresponds to. That includes using gdb to resolve a few symbols in order to identify memory layouts and a few important global addresses. This dependency has been kept to a bare minimum so that the unwinder will be as resilient as possible to changes in the JVM. Can we have this in OpenJDK? ---------------------------- The current code is LGPL licensed. I'd be very happy to contribute it to OpenJDK as part of the code tools set for JDK developers to use and Red Hat would be very happy to maintain it once included. Ideally, Red Hat would like to ship the tool as part of OpenJDK product releases for use in any distro where minimal debug info is available with the product release. We see great benefit in the opportunity it provides for support staff to print stack traces from core files (clearly, shipping with OpenJDK would help to ensure that changes in the JVM and required changes in the python code were able to be kept in sync). I have copied this note to the code-tools-dev list on the assumption that it is the correct place to open up discussion of whether it could/should be provided as part of OpenJDK. If not can someone please let me know where else I should start that discussion. regards, Andrew Dinn ----------- Senior Principal Software Engineer Red Hat UK Ltd Registered in England and Wales under Company Registration No. 03798903 Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< --- Normal gdb backtrace for java thread fails ot unwind through Java frames (gdb) thread 16 [Switching to thread 16 (Thread 0x7fffa1fff700 (LWP 4930))] #0 0x00007fffe1113484 in ?? () (gdb) bt 3 #0 0x00007fffe1113484 in ?? () #1 0x00007fffd3c00c18 in ?? () #2 0x0000000000000000 in ?? () Backtrace with the unwinder installed (gdb) thread 2 [Switching to thread 2 (Thread 0x7ffff7fcc700 (LWP 4906))] #0 0x00007ffff79b6540 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 (gdb) bt 10 #0 0x00007ffff79b6540 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007ffff64ae82d in os::PlatformEvent::park() (this=0x7ffff0019700) at /home/adinn/redhat/openjdk/jdk9/hs/hotspot/src/os/linux/vm/os_linux.cpp:5582 #2 0x00007ffff6486f59 in ObjectMonitor::wait(long, bool, Thread*) (this=0x7fff90008b80, millis=0, interruptible=true, __the_thread__=0x7ffff0018800) at /home/adinn/redhat/openjdk/jdk9/hs/hotspot/src/share/vm/runtime/objectMonitor.cpp:1490 #3 0x00007ffff66518cb in ObjectSynchronizer::wait(Handle, long, Thread*) (obj=..., millis=0, __the_thread__=0x7ffff0018800) at /home/adinn/redhat/openjdk/jdk9/hs/hotspot/src/share/vm/runtime/synchronizer.cpp:496 #4 0x00007ffff618fa54 in JVM_MonitorWait(JNIEnv*, jobject, jlong) (env=0x7ffff0018a28, handle=0x7ffff7fcb738, ms=0) at /home/adinn/redhat/openjdk/jdk9/hs/hotspot/src/share/vm/prims/jvm.cpp:614 #5 0x00007fffd8924f7d in [interpreted: bc = 0] java.lang.Object.wait(long) () at java/lang/Object.java #6 0x00007fffd89034a3 in [interpreted: bc = 38] java.lang.Thread.join(long) () at java/lang/Thread.java:1352 #7 0x00007fffd89034a3 in [interpreted: bc = 2] java.lang.Thread.join() () at java/lang/Thread.java:1426 #8 0x00007fffd89034a3 in [interpreted: bc = 35] HelloV.main(java.lang.String) () at HelloV.java:80 #9 0x00007fffd88f89f1 in StubRoutines (1) () #10 0x00007ffff6109bb3 in JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*) (result=0x7ffff7fcbd30, method=..., args=0x7ffff7fcbc10, __the_thread__=0x7ffff0018800) at /home/adinn/redhat/openjdk/jdk9/hs/hotspot/src/share/vm/runtime/javaCalls.cpp:409 (gdb) thread 26 [Switching to thread 26 (Thread 0x7fffa1fff700 (LWP 4930))] #0 0x00007fffe03cb664 in ?? () (gdb) bt 5 #0 0x00007fffe03cb664 in [compiled offset = 0x3a4] HelloV$1.run() () at HelloV.java:63 #1 0x00007fffd88f89f1 in StubRoutines (1) () #2 0x00007ffff6109bb3 in JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*) (result=0x7fffa1ffecc0, method=..., args=0x7fffa1ffec00, __the_thread__=0x7ffff0471800) at /home/adinn/redhat/openjdk/jdk9/hs/hotspot/src/share/vm/runtime/javaCalls.cpp:409 #3 0x00007ffff64ad409 in os::os_exception_wrapper(void (*)(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*), JavaValue*, methodHandle const&, JavaCallArguments*, Thread*) (f=0x7ffff610951a , value=0x7fffa1ffecc0, method=..., args=0x7fffa1ffec00, thread=0x7ffff0471800) at /home/adinn/redhat/openjdk/jdk9/hs/hotspot/src/os/linux/vm/os_linux.cpp:5128 #4 0x00007ffff6109502 in JavaCalls::call(JavaValue*, methodHandle const&, JavaCallArguments*, Thread*) (result=0x7fffa1ffecc0, method=..., args=0x7fffa1ffec00, __the_thread__=0x7ffff0471800) at /home/adinn/redhat/openjdk/jdk9/hs/hotspot/src/share/vm/runtime/javaCalls.cpp:298 #5 0x00007ffff610877b in JavaCalls::call_virtual(JavaValue*, KlassHandle, Symbol*, Symbol*, JavaCallArguments*, Thread*) (result=0x7fffa1ffecc0, spec_klass=..., name=0x7ffff4031338, signature=0x7ffff4033220, args=0x7fffa1ffec00, __the_thread__=0x7ffff0471800) at /home/adinn/redhat/openjdk/jdk9/hs/hotspot/src/share/vm/runtime/javaCalls.cpp:193 (gdb)