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?
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).
You don't want to use the httpready filter on FreeBSD at this time anyway. I recommend disabling it entirely.
Just open shell prompt and type the following command to load accf_http under FreeBSD :
# kldload accf_http
Restart apache:# /usr/local/etc/rc.d/apache22 restart
Update /boot/loader.conf fileType the following command so that driver get loaded at the time of booting system:
# echo 'accf_http_load="YES"' >> /boot/loader.conf
http://www.cyberciti.biz/faq/failed-to-enable-the-httpready-accept-filter/