Freebsd – httpready problem on Apache httpd restart on FreeBSD

apache-2.2freebsdhttpd

I run Apache HTTPD 2.2 on my FreeBSD 7.2 webserver. I have enabled the httpready and dataready in my /boot/loader.conf, like this:

accf_http_load="YES"
accf_data_load="YES"

That works great when the server is started, but whenever I restart (via apachectl graceful or apachectl restart), I get a salvo like this in my /var/log/httpd-error.log:

[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'httpready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'dataready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'httpready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'dataready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'httpready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'httpready' Accept Filter

There' is a bug for this on ASF bugzilla, but that doesn't look like it's going anywhere soon, so in the meantime, I'm looking to find out if this is really a problem (does the httpready filter still work despite the warnings?), and if it is, is there a workaround?

Best Answer

I believe it's one of two things. Either Apache doesn't close the previous connection before opening the new listening socket (or it might even recycle the old) or the Kernel associates filter use with a PID instead of a socket (which would be weird at best). Definitely something not right but I'm not sure if it's in Apache or the Kernel. The problem still exists in 9.0 and 2.2.20.

Since nobody seems to have bothered with this in 2 years and it's easily worked around by using the rc script instead of apachectl, I'm not going to hunt it down (sorry).