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