> 12 okt. 2018 kl. 18:16 skrev Erik Joelsson <erik.joels...@oracle.com>: > > >> On 2018-10-12 01:37, Magnus Ihse Bursie wrote: >> Hi Erik, >> >> Thank you for preserving through this, so we finally can move to 100% >> run-test! >> >>> On 2018-10-12 00:29, Erik Joelsson wrote: >>> >>> Hello, >>> >>> (adding serviceability-dev and hotspot-dev for test changes) >>> >>> Bug: https://bugs.openjdk.java.net/browse/JDK-8212028 >>> >>> Webrev: http://cr.openjdk.java.net/~erikj/8212028/webrev.01/index.html >>> (From ihse-runtestprebuilt-branch in jdk-sandbox) >> Build changes look good. And I agree with the solution to add longer timeout >> to individual tests. > Thanks! >>> >>> test/hotspot/jtreg/runtime/appcds/jvmti/InstrumentationTest.java >>> This test spawns a child process and tries to locate it using the attach >>> api, by looking for a unique token in the command line string of the >>> spawned JVM. The problem is that the command line string it gets from the >>> attach api is truncated and the token is last on the command line. This >>> normally works well, but the arguments before it are 3 files, with full >>> absolute paths inside the jtreg work directory. With Mach5 we have pretty >>> deep work directories, and with run-test, we make them even deeper. This >>> unfortunately trips the limit and the test fails. I have fixed this by >>> reordering the arguments to the child process. >> ... but I'm not sure I understand this. Is it a command-line length we're >> hitting? If so, how can reordering the arguments solve anything? I >> understand why this can preserve the token, but will not one of the paths be >> cut of instead? > I will try to be clearer. The command line is fine for running the child > process. The truncation happens when the attach api is used to try to find > the child process. It basically calls something that lists all JVMs on > system, iterates through them and looks at the "description" field. This > field happens to contain the first X characters of the command line so the > test looks for the unique token it knows it put there. (I don't know the > exact value of X, but could find out). Until now, X was big enough to fit the > whole command line, but with the 3 absolute path files in there now growing > long enough, the last argument is pushed out of the description field. This > means the test process is unable to locate the child process in the list of > JVMs. What then happens is the test keeps on looking, taking new snapshots of > all JVMs on the system until the test finally times out. By reordering the > arguments, the token is less likely to be cut out of the description field. >
I see. Then your fix makes totally sense. /Magnus > /Erik >