Alexis Huxley wrote:
       [Mon Feb 16 23:35:33 2004] [warn] (97)Address family not supported by protocol: 
get socket to connect to listener
       [Mon Feb 16 23:35:34 2004] [warn] (97)Address family not supported by protocol: 
get socket to connect to listener


Ok, it did it again. Here's the 'strace -p' output:

        Script started on Wed Feb 25 22:17:44 2004
        dione:/tmp# ps fax | grep httpd
         2141 pts/7    S      0:00                      \_ grep httpd
         1008 ?        S      0:00 /usr/server/opt/apache2/bin/httpd -k start
         1009 ?        S      0:00  \_ /usr/server/opt/apache2/bin/httpd -k start

        dione:/tmp# strace -p 1008
        Process 1008 attached - interrupt to quit
        select(0, NULL, NULL, NULL, {0, 620000}) = 0 (Timeout)
        write(6, "!", 1)                        = 1
        socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = -1 ENOSYS (Function not 
implemented)
        socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = -1 ENOSYS (Function not 
implemented)
        socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = -1 EAFNOSUPPORT (Address family 
not supported by protocol)
        gettimeofday({1077743877, 15040}, NULL) = 0
        write(7, "[Wed Feb 25 22:17:57 2004] [warn"..., 114) = 114
        waitpid(-1, 0xbffffa00, WNOHANG|WUNTRACED) = 0
        select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
        write(6, "!", 1)                        = 1
        socket(PF_INET6, SOCK_STREAM, IPPROTO_IP) = -1 ENOSYS (Function not 
implemented)

.....

... and so on.

I hope that helps. Any ideas? Thanks.

hmmm, looks like the httpd parent is trying to shut down a child process gracefully after a decrease in traffic. write(6, "!", 1) means it's using the pipe of death. Since waitpid() is returning 0, it looks the child processes aren't responding to the pipe of death. Could it be that network traffic is totally dried up during these periods? or could the child processes be in the middle of some long running request? server-status with ExtendedStatus On would help answer those questions.


I'm guessing the series of socket calls after that is where we pretend we are a browser and try to establish dummy connections in an attempt to wake up a potential victim child which could be blocked in accept(). dunno what's wrong with the socket() calls, why they say PF_INET6, or why they come in groups of three.

From the ps, it looks like you are using the prefork mpm...is that correct?

I'm guessing you hear the disk ticking once a second like clockwork when this happens.

I'll post a bug on Saturday either way unless someone suggest otherwise.

sure, might as well.


Greg



Reply via email to