<A> Program received signal SIGSEGV, Segmentation fault. <B> there's a SIGCHLD handler that's calling wait <C> calling wait in a SIGCHLD handler sounds like a bad idea <B> which program is it ? <A> exult <A> it happens when you enable sound output <B> can you find where in the code it's installing the SIGCHLD handler? <A> https://github.com/rofl0r/exult/blob/master/exult.cc#L285 <A> // a SIGCHLD handler to properly clean up forked playmidi processes (if any) <B> i would just remove that line <B> the proper way to cleanup the zombie is to save its pid and waitpid() for it at the appropriate time <B> not indiscriminately reap all child processes <B> but fixing that requires finding the code that's creating the playmidi processes
in short: it's a bug to reap all childs, because other libs may legally creates processes and exult has no business disturbing them.
patch: http://sprunge.us/PGfK (will be automatically deleted in about 2 months)
Log in to post a comment.