I'm starting to see more and more flows run a process and leave a thread waiting for it just to prevent a zombie attack.
This is wasteful, even more so that this is usually done for process that might get stuck on IO and might take a while to come back.
To solve this I implemented this little tidbit. http://gerrit.ovirt.org/#/c/8937/
And you can see it being used here: http://gerrit.ovirt.org/#/c/8907/
specifically: http://gerrit.ovirt.org/#/c/8907/5/vdsm/storage/remoteFileHandler.py
That being said, I also want to suggest adding autoreaping to AsyncProc.__del__() with a warning printed to the log notifying about the (maybe) unintentional process leak. Comments and suggestions for improvement are most welcome.