On Wed, Jan 11, 2012 at 03:07:53PM -0600, Bill Kendall wrote: > xfsdump explicitly ignores SIGCHLD in order to prevent librmt rsh > processes from becoming zombies. However, doing so interferes with the > ability for system() to determine a command's exit status. > > Setting up a handler for SIGCHLD will not work either, since xfsdump is > now multi-threaded and the main thread (which handles signals) might > handle a child exit before the thread running system() can. > > I also attempted to use waitpid() when tearing down a librmt session, > but this has the potential to block indefinitely if there is a problem > on the remote side. (And using WNOHANG tended to never catch the exit.) > > In the end, I settled on just not touching SIGCHLD at all. There may be > a zombie rsh when librmt is used, but typically it will be alive until > the end of the backup and in any case will be cleaned up when > xfsdump/restore exits. > > Signed-off-by: Bill Kendall <wkendall@xxxxxxx> Looks OK to me. Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs