696bb4a0c0
When we force an application to terminate (via CTRL-C to mpirun) we send an out-of-band message to the orted to reap its children. the fork PLS was doing an internal waitpid but never releasing or updating the information and signaling the condition variable. So the fork PLS callback for SIGCHLD registered with the event library and this waitpid are in a bit of a race to 'waitpid' for the children. Since the PLS callback was the only one that handled the signal properly when it 'won' then things were great -- as in the normal termination case. But when it 'lost' -- as in the abnormal termination case -- the orted never received the proper signal that its children had gone away. We want to preserve the internal fork PLS callback since it allows for a timeout while waiting for the child, which the event library won't do. This allows both to exist, and behave properly. This was introduced in r9068. The ticket is still open since the orted's hang in other situations still. This is a fix for one of the causes. This commit was SVN r10662. The following SVN revision numbers were found above: r9068 --> open-mpi/ompi@c2c2daa966