- changed 4 files
event, worker: runtime pool.MPMs event and worker both need a dedicated pool to handle the creation ofthe threads (listener, workers) and synchronization objects (queues, pollset,mutexes...) in the start_threads() thread, with at least the lifetime ofthe connections they handle, and thus survive pchild destruction (notablyin ONE_PROCCESS mode, but SIG_UNGRACEFUL is concerned too).For instance, without this fix, the below backtrace can happen in ONE_PROCCESSmode and a signal/^C is received (with active connections):Thread 1 "httpd" received signal SIGSEGV, Segmentation fault.(gdb) bt#0 <BOOM>#1 0x00007ffff7c7e016 in apr_file_write (thefile=0x0, ...) ^ NULL (cleared) at file_io/unix/readwrite.c:230#2 0x00007ffff7c7e4a7 in apr_file_putc (ch=1 '\001', thefile=0x0) ^ NULL (cleared) at file_io/unix/readwrite.c:377#3 0x00007ffff7c8da4a in apr_pollset_wakeup (pollset=0x55555568b870) ^ already destroyed by pchild at poll/unix/pollset.c:224#4 0x00007ffff7fc16c7 in decrement_connection_count (cs_=0x7fff08000ea0) at event.c:811#5 0x00007ffff7c83e15 in run_cleanups (cref=0x7fffe4002b78) at memory/unix/apr_pools.c:2672#6 0x00007ffff7c82c2f in apr_pool_destroy (pool=0x7fffe4002b58) ^ master_conn at memory/unix/apr_pools.c:1007#7 0x00007ffff7c82c12 in apr_pool_destroy (pool=0x7fff08000c28) ^ ptrans at memory/unix/apr_pools.c:1004#8 0x00007ffff7c82c12 in apr_pool_destroy (pool=0x555555638698) ^ pconf at memory/unix/apr_pools.c:1004#9 0x00007ffff7c82c12 in apr_pool_destroy (pool=0x555555636688) ^ pglobal at memory/unix/apr_pools.c:1004#10 0x00005555555f4709 in ap_terminate () at unixd.c:522#11 0x00007ffff6dbc8f1 in __run_exit_handlers (...) at exit.c:108#12 0x00007ffff6dbc9ea in __GI_exit (status=<optimized out>) at exit.c:139#13 0x00007ffff7fc1616 in clean_child_exit (code=0) at event.c:774 ^ pchild already destroyed here#14 0x00007ffff7fc5ae4 in child_main (child_num_arg=0, child_bucket=0) at event.c:2869...While at it, add comments about the lifetimes of MPMs pools and their objects,and give each pool a tag (e.g. "pchild" accordingly to other MPMs).(follow up for event_pollset in r1835846).