RFR(S): JDK-8029808 com/sun/jdi/ProcessAttachTest.sh times out

Staffan Larsen staffan.larsen at oracle.com
Wed Feb 5 00:38:27 PST 2014


Dmitry, Alan: Thanks!

On 3 feb 2014, at 21:31, Dmitry Samersoff <dmitry.samersoff at oracle.com> wrote:

> Staffan,
> 
> Looks good for me!
> 
> -Dmitry
> 
> On 2014-02-03 23:18, Staffan Larsen wrote:
>> OK, my last try at this was very broken - I’m glad it didn’t pass the review.
>> 
>> Here is a new try: http://cr.openjdk.java.net/~sla/8029808/webrev.01/
>> 
>> As Alan says, we can’t use jps on the (second) debuggee becuse it is started with suspend=y. In that mode it is waiting for a debugger to attach before it has started executing any Java code and before jps is able to identify it.
>> 
>> I did find a race in the test, though. When the first debuggee is started (suspend=n) there is a race where the debugger process can attach and finish before the debuggee has written out the portfile. In that case ShutdownDebuggee will fail. I have seen this failure mode happen and I can force it by inserting a Thread.sleep into the debuggee. I solved this by waiting for the port file to appear in the suspend=n case as well.
>> 
>> There is also a potential problem where both debuggees use the same output file and we may think the second debuggee has started before it actually has (because the output file isn’t empty). I solved that be creating different output files for the two test cases.
>> 
>> I’ve also redirected all error streams so any errors aren’t lost.
>> 
>> Thanks,
>> /Staffan
>> 
>> On 30 jan 2014, at 18:09, Alan Bateman <Alan.Bateman at oracle.com> wrote:
>> 
>>> On 30/01/2014 16:59, Dmitry Samersoff wrote:
>>>> Staffan,
>>>> 
>>>> No it's not to your code. Sorry for not being clean enough.
>>>> 
>>>> You cleaned up unix code, but windows code remains bad. Particularly, it
>>>> has bad unconditional sleep 2
>>>> 
>>>> I would propose replace *windows manipulation with CYGWIN/MKS pids* to
>>>> call to JPS that return windows pid
>>>> 
>>> I have a vague memory that we had to use ps to get the pid because of the suspend=y test which cause the debuggee to suspect during startup. I might be wrong on this of course, it was a long time ago.
>>> 
>>> -Alan
>> 
> 
> 
> -- 
> Dmitry Samersoff
> Oracle Java development team, Saint Petersburg, Russia
> * I would love to change the world, but they won't give me the sources.



More information about the serviceability-dev mailing list