Package: apache2 Version: 2.4.25-3+deb Severity: normal I woke up to a server with hundreds of apach2e -k graceful processes running. This prevented any cgis from running since it was nearly out of process slots.
2142 ? SNs 0:01 /usr/sbin/apache2 -k graceful 6007 ? SN 0:00 \_ /usr/sbin/apache2 -k graceful 4680 ? SNl 0:00 \_ /usr/sbin/apache2 -k graceful 2217 ? SNs 0:01 /usr/sbin/apache2 -k graceful 7127 ? SN 0:00 \_ /usr/sbin/apache2 -k graceful 2542 ? SNl 0:00 \_ /usr/sbin/apache2 -k graceful 2177 ? SNs 0:01 /usr/sbin/apache2 -k graceful 6748 ? SN 0:00 \_ /usr/sbin/apache2 -k graceful 4189 ? SNl 0:00 \_ /usr/sbin/apache2 -k graceful 2214 ? SNs 0:01 /usr/sbin/apache2 -k graceful 6738 ? SN 0:00 \_ /usr/sbin/apache2 -k graceful 3023 ? SNl 0:00 \_ /usr/sbin/apache2 -k graceful This was just after an upgrade from oldstable the day before. I'm at this point not quite sure what reloaded apache multiple times, but it was probably a cron job reloading it once per vhost or something like that. Running a single apache2ctl graceful did not result in any such stuck processes. I was able to reproduce the basic problem thus: apache2ctl graceful & apache2ctl graceful & apache2ctl graceful With 3 running concurrently, they get in each other's way. Output to the console looked like this: pell:/# apache2ctl graceful & apache2ctl graceful & apache2ctl graceful [1] 15772 [2] 15773 httpd not running, trying to start httpd not running, trying to start httpd not running, trying to start [1]- Done apache2ctl graceful pell:/# [2]+ Done apache2ctl graceful pell:/# pell:/# ps -fax |grep graceful 16120 pts/0 S+ 0:00 \_ grep graceful 15788 ? Ss 0:00 /usr/sbin/apache2 -k graceful 15790 ? S 0:00 \_ /usr/sbin/apache2 -k graceful 15795 ? Sl 0:00 \_ /usr/sbin/apache2 -k graceful 15796 ? Sl 0:00 \_ /usr/sbin/apache2 -k graceful 15789 ? Ss 0:00 /usr/sbin/apache2 -k graceful 15901 ? S 0:00 \_ /usr/sbin/apache2 -k graceful 15903 ? Sl 0:00 \_ /usr/sbin/apache2 -k graceful 15904 ? Sl 0:00 \_ /usr/sbin/apache2 -k graceful 15794 ? Ss 0:00 /usr/sbin/apache2 -k graceful 15902 ? S 0:00 \_ /usr/sbin/apache2 -k graceful 16010 ? Sl 0:00 \_ /usr/sbin/apache2 -k graceful What are the stuck processes doing? Waiting on something.. pell:/# strace -p 15794 strace: Process 15794 attached _newselect(0, NULL, NULL, NULL, {tv_sec=0, tv_usec=762363}) = 0 (Timeout) waitpid(-1, 0xbfce1210, WNOHANG|WSTOPPED) = 0 _newselect(0, NULL, NULL, NULL, {tv_sec=1, tv_usec=0}) = 0 (Timeout) waitpid(-1, 0xbfce1210, WNOHANG|WSTOPPED) = 0 pell:/# strace -p 15902 strace: Process 15902 attached accept(4, ^C pell:/# ls -l /proc/15902/fd/4 lrwx------ 1 root root 64 Aug 24 16:18 /proc/15902/fd/4 -> socket:[2396130] pell:/# strace -p 16010 strace: Process 16010 attached read(7, ^C pell:/# ls -l /proc/16010/fd/7 lr-x------ 1 root root 64 Aug 24 16:18 /proc/16010/fd/7 -> pipe:[2401595] -- see shy jo
signature.asc
Description: PGP signature