Jeff Trawick <[EMAIL PROTECTED]> writes: > b) 1 listening socket in Linux, where we don't need an accept > mutex (intermittent failure): > > [notice] child pid 18314 exit signal Segmentation fault (11) ... > d) Dale Ghent hit a segfault on Solaris 8 in ap_queue_interrupt_all() > (NULL parameter passed in).
At least some segfaults I'm seeing on Linux match the Solaris symptom. The bug is that we're calling ap_queue_interrupt_all() before initializing worker_queue. t0 we need to fork() a new child for some reason t1 we get the graceful restart prod on the pod BEFORE the start_threads() thread has gotten dispatched and initialized worker_queue t2 we call signal_workers() which tries to use a NULL worker_queue and we segfault One possible fix for this is to initialize worker_queue in child_main() before creating the start_threads() thread so that there is no question that the init has been done before we try to use it. But there seem to be other timing issues as well. Maybe we miss our chance to apr_thread_join() a worker thread right before it has been created. A fix that would handle that as well as the first problem would be to join the start_threads() thread before trying to process a restart request. -- Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site: http://www.geocities.com/SiliconValley/Park/9289/ Born in Roswell... married an alien...