RFR [8034262] Test java/lang/ProcessBuilder/CloseRace.java fails
Martin Buchholz
martinrb at google.com
Tue Mar 11 15:04:34 UTC 2014
Thanks for working on my brittle racy tests.
Adding a latch as you did is a good improvement, although there's a good
chance the real problem lies elsewhere.
My standard name for such latches is "threadsStarted", which I think is a
bit better than "startedSignal". Please rename.
My simple calls to Thread.join are too optimistic.
More likely to be helpful is code like (pseudocode follows):
thread.join(10, SECONDS);
if (thread.isAlive()) {
dumpAllStacks();
fail();
}
That's more work to implement - optional.
On Tue, Mar 11, 2014 at 5:24 AM, Ivan Gerasimov
<ivan.gerasimov at oracle.com>wrote:
> Hello everybody!
>
> The test java/lang/ProcessBuilder/CloseRace.java was reported to
> intermittently fail.
> The test timed out, which should mean that at least one of the child
> threads was never interrupted.
>
> I couldn't reproduce the failure, but I suspect it might happen due to
> call to interrupt() before the child thread became alive (I'm not really
> sure if it's possible to be non-alive after call to start()).
> The fix is to explicitly synchronize children with the parent.
>
> Would you please help review the fix?
>
> BUGURL: https://bugs.openjdk.java.net/browse/JDK-8034262
> WEBREV: http://cr.openjdk.java.net/~igerasim/8034262/0/webrev/
>
> Sincerely yours,
> Ivan
>
More information about the core-libs-dev
mailing list