RR, M 7186723: TEST_BUG: Race condition in sun/management/jmxremote/startstop/JMXStartStopTest.sh
Alan Bateman
Alan.Bateman at oracle.com
Sat Aug 25 23:27:39 PDT 2012
On 25/08/2012 21:16, Dmitry Samersoff wrote:
> :
> The test sends couple of jcmd commands to the single server process.
> jcmd do attach, call, detach for each command. So I have to keep server
> running for some time.
>
> Server process with just while(true) sleep(1); would run forever if
> test doesn't kill it for some reason - it's why I use busy code.
>
> So I'm open for any advice here.
>
> -Dmitry
>
Our tests need to be very reliable and fast to be useful. With this one
then I'm concerned that this busy code is going to hog a core on busy
machines and just run too quickly on fast machines (although looking at
the code I assume Quicksort(data,1000,0); will cause it to immediately
barf so I don't think it actual runs).
If I were writing this test then I would control the target process via
a socket connection. That way you can instruct it to shutdown when
required. You'll see an example in
java/nio/channels/AsynchronousFileChannel/Lock.java. Closer to your home
then com/sun/tools/attach/BasicTests.sh also uses the socket connection
to shutdown the "application". The other thing I would do is re-write as
much as the test in java as possible, just to keep it portable and
easier to maintain. I realize there is a slight complication here in
that you need the pid but otherwise I don't see any reason to use a
shell test.
-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20120826/eb6e9cc9/attachment.html
More information about the serviceability-dev
mailing list