Possible Bug

Stephen Sanders ssanders at opnet.com
Tue Sep 2 22:51:43 UTC 2008

We have an application that fork/execs processes at a low frequency rate
( ~1/minute).  The system is under a reasonably heavy
processor/network/disk load as it is capturing data at 1Gbps+.

At what appear to be random intervals, the parent process in the fork
starts consuming 100% CPU.  It looks like the monitor thread in
UNIXProcess is the culprit.

I've not been able to down load the diablo patches from the FreeBSD web
site, however, it appears OpenJDK that there may be a window for this
sort of thing to happen in UNIXProcess_md.c.

In Java_java_lang_UNIXProcess_waitForExit(), waitpid() could very easily
fail returning an EINTR as there are no options to the waitpid call..
This will could cause a tight loop. The error section of the man page
says that if WNOHANG is NOT set then unblocked signals or SIGCHLD will
cause EINTR errors.

I'll attempt to get the patches from the eyesbeyond web site and verify
this claim.

Thanks for your attention.

More information about the freebsd-java mailing list