Updated webrev:
http://cr.openjdk.java.net/~egahlin/8028474_5/
See comments inline.
Staffan Larsen skrev 2014-06-26 13:22:
Indentation around JavaProcess.getId() is weird.
Fixed
JavaProcess.getPid/setPid/pid do not appear to be used.
Fixed
JavaProcess.waitForRemoval: How about using timestamps
(currentTimeMillis()) before the loop and for each ite
ration to determine if the timeout has expired (instead of "time+=100”)?
The code now uses currentTimeMillis(). Premature timeouts due to clock
changes can be deduced from the log.
I also cleaned up the log for releaseStarted/releaseTerminated
nit: missing empty line before line 139, method releaseStarted().
Fixed
Thanks
Erik
/Staffan
On 26 jun 2014, at 00:56, Erik Gahlin <erik.gah...@oracle.com
<mailto:erik.gah...@oracle.com>> wrote:
It didn't work.
There's no termination notification, if I use
Process#destroyForcibly(). I believe the hsperfdata file is left
behind so it will not be able to detect that the process has died.
Here is an updated version that renames some variable/methods.
http://cr.openjdk.java.net/~egahlin/8028474_3/
Thanks
Erik
Erik Gahlin skrev 2014-06-18 09:37:
Didn't know about destroyForcibly(). I could try that.
Erik
Staffan Larsen skrev 18/06/14 09:26:
Erik,
How about using Process.destroyForcibly() as a means to terminate
the process instead of using files for signaling?
/Staffan
On 17 jun 2014, at 23:13, Erik Gahlin <erik.gah...@oracle.com
<mailto:erik.gah...@oracle.com>> wrote:
Yes, very weird
Could have been that I needed the tools.jar in the child
processes, or it could have been something else. If I remember
correctly, I got a CNF that I didn't get with the shell script,
but it was few months back.
Anyway, I retried with JPRT and now it works without the shell script.
http://cr.openjdk.java.net/~egahlin/8028474_2/
Erik
Staffan Larsen skrev 2014-06-16 13:49:
On 16 jun 2014, at 12:32, Erik Gahlin <erik.gah...@oracle.com
<mailto:erik.gah...@oracle.com>> wrote:
Yekaterina Kantserova skrev 13/06/14 12:59:
Erik,
is there some reason why we need to keep
MonitorVmStartTerminate.sh? I've moved the JTreg header to
MonitorVmStartTerminate.java
Hi Katja,
That's how I did the test initially, and it works locally, but I
could never get it to work in JPRT without the shell script. I
believe the tools.jar is not on the class path.
That is weird. I see other tests that depend in tools.jar and
they work fine.
/Staffan
Erik
/*
* @test
* @bug 4990825
* @summary attach to external but local JVM processes
* @library /lib/testlibrary
* @build jdk.testlibrary.*
* @run main MonitorVmStartTerminate
*/
and the test works just fine.
The JTreg run contains all pathes and system properties
MonitorVmStartTerminate.sh tries to construct:
${JAVA} ${TESTVMOPTS} -Dtest.jdk=${TESTJAVA}
-Dtest.classes=${TESTCLASSES} -classpath ${CP}
MonitorVmStartTerminate
See the log attached.
Note *@build jdk.testlibrary.** instead of *@build
jdk.testlibrary.ProcessTools* to make sure all testlibrary
classes are compiled
to the right place when running tests concurrently.
Thanks,
Katja (Not a Reviewer)
On 06/12/2014 12:37 AM, Erik Gahlin wrote:
Hi,
Could I have a review of a test that has been failing
intermittently. The test now uses files for synchronization
instead of waiting for a process that sleeps.
Webrev:
http://cr.openjdk.java.net/~egahlin/8028474/
Bug:
https://bugs.openjdk.java.net/browse/JDK-8028474
Description:
The test starts ten Java processes, each with a unique id.
Each process creates a file named after the id and then it
waits for
the test to remove the file, at which the Java process exits.
The processes are monitored by the test to make sure
notifications
are sent when processes are started/terminated.
To avoid Java processes being left behind, in case of an
unexpected
failure, shutdown hooks are registered that remove files when
the test
exits. If files are not removed, i.e. due to a JVM crash,
the Java processes will exit themselves after 1000 s.
Thanks
Erik