CR 6860309 - solaris timing issue on thread startup

Alan Bateman Alan.Bateman at oracle.com
Sat Nov 12 11:58:43 UTC 2011


On 11/11/2011 16:56, Gary Adams wrote:
>  CR 6860309 - TEST_BUG: Insufficient sleep time in 
> java/lang/Runtime/exec/StreamsSurviveDestroy.java
>
> A timing problem is reported for slow solaris systems for this
> test to start up a process and systematically torture the underlying
> threads processing data from the running process.
>
> On my fast solaris machine I can not reproduce the error,
> but it is reasonable to assume that on a slower machine there
> could be scheduling issues that could delay the thread startup
> past the designated 100 millisecond delay in the main thread.
>
> This webrev suggests gating the process destruction until both
> worker threads are alive.
>
>   http://cr.openjdk.java.net/~gadams/6860309/
>
>
-Xcomp on a slow machine, always fun when testing the untestable.

I agree with David but I don't think there is perfect solution. I would 
suggest using a CountDownLatch or other synchronization so that the main 
thread waits until the Copier thread is just about to do the read. Then 
do a sleep in the main thread before invoking the destroy method. I 
suspect that is the best that you can do as can't be guaranteed that the 
Copier thread is blocked in the underlying read.

-Alan.



More information about the core-libs-dev mailing list