Somebody please tell me that this stupid keepalive bug isn't as
simple as this patch:

Index: server/core.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/server/core.c,v
retrieving revision 1.9
diff -u -r1.9 core.c
--- server/core.c       2001/04/22 22:19:32     1.9
+++ server/core.c       2001/04/29 03:02:03
@@ -2965,7 +2965,7 @@
         return HTTP_METHOD_NOT_ALLOWED;
     }
        
-    if ((status = apr_file_open(&fd, r->filename, APR_READ | APR_BINARY, 0, 
r->connection->pool)) != APR_SUCCESS) {
+    if ((status = apr_file_open(&fd, r->filename, APR_READ | APR_BINARY, 0, r->pool)) 
+!= APR_SUCCESS) {
         ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r,
                     "file permissions deny server access: %s", r->filename);
         return HTTP_FORBIDDEN;

This works for me.  And, it even makes sense.  Why are we opening the
file from the connection's pool rather than our request pool?

Or, am I just missing something?  

Now, I wonder if those connections pools are being freed.  As I said,
in keepalive mode, all of the file descriptors are kept open until the
process terminates.  Is that pool not getting freed somehow?  Off to 
track that down.  -- justin

Reply via email to