I was taking a look at a server that had a handful of zombies and came to see they are caused by rotatelogs. It seems pretty straight forward why - I am calling gzip post-rotate to compress the log file and child cleanup only happens during the post_rotate function, but before apr_proc_create for this rotation. So, effectively, you will have a zombie process from time_child_dies to next_rotation.
I would like to get rid of those zombie processes sooner but am wary to call apr_proc_wait_all_procs very often... I don't know what the expense of doing that would be. So... I'm seeking advice for the best option here: *Call apr_proc_wait_all_procs in the main loop (expensive?) *Spawn a thread on the side to reap the child a la blocking mode *Check an interval in the main loop to call apr_proc_wait_all_procs once per X time *or... your idea Thanks P.S. ApacheCon was a blast - can't wait until next one! -- Daniel Ruggeri