We are having a problem with ant hanging when it executes a javadoc target
on solaris (we are running on 8 processor 4500). The javadoc process gets 2
seconds of cpu time and then hangs. The javadoc command works fine when run
directly from the shell.

If we kill the hanging javadoc process, ant prints the message:

        build.xml:59: Exec returned: 143

I notice that /usr/include/syscall.h declares:

        #define SYS_fork1       143

This would imply that the subprocess is hanging on a fork1() command.

The solaris doc says the following about fork1:

     If fork1() is called in a Solaris thread program  or  fork()
     is called in a POSIX thread program, and the child does more
     than just call exec(), there is a possibility of deadlocking
     in  the  child.  To ensure that the application is safe with
     respect to this deadlock, it should use  pthread_atfork(3T).
     Should  there be any outstanding mutexes throughout the pro-
     cess, the application  should  call  pthread_atfork(3T),  to
     wait for and acquire those mutexes, prior to calling fork().
     (See attributes(5) "MT-Level of Libraries")

Or, maybe this is a red herring.

Has anyone else had problems with hangs?

Reply via email to