Subject: Apache with mod_proxy as caching proxy randomly fails
From: Brian Dessent <[email-masked]>
To: Cygwin mailing list <[email-masked]>
Date: Sun, 13 Jul 2003 15:10:24 -0700

Hi.  I've been trying for some time now to get Apache working as a
caching proxy.  I am finding that random requests fail, returning a HTTP
503 error to the caller (which happens to be another chained proxy, but
that's not relevent here), with a corresponding line in the error log
similar to :

[Sun Jul 13 11:16:37 2003] [error] (13)Permission denied: proxy: error
linking cache file /var/cache/apache/tmp003196 to
/var/cache/apache/9/Q/VkKA5ubeqzho36CHKUug

This usually seems to happen with images, but I've also seen it happen
with .css stylesheets and also html pages, i.e. any request is
susceptible.  It seems to happen when the client requests a page and
explictly disallows caching, i.e. when I do Ctrl-F5 in internet
exploder.

As I test I've been loading the page <http://slashdot.org/topics.shtml>
as it contains a fair number of images (~130) and so it's easy to tell
which ones fail -- I get a broken image icon for a random selection of
anywhere from 5 to 25 images on that page.  Right-clicking and choosing
"display image" in the browser causes the image to instantly appear.

I've posted a copy of apache's error log (with full debugging) at:
<http://www.dessent.net/tmp/error_report.log>  The first portion of the
log (starting at the beginning) is from loading the page normally.  I
deleted apache's cache prior to this.  The page loads fine, no errors. 
Then starting at "12:06:38" I hit Ctrl-F5 on the same page, and got a
number of broken image icons and errors in the log.

Figuring that there was some permissions error with the
/var/cache/apache directory, I've tried every conceivable combination of
permissions, and I still get these random "error linking cache file"
errors, and broken images.  I've tried running apache as SYSTEM, as my
user account (a member of Administrators) and as a regular user that is
only a member of Users.  For each of these cases I've nuked the
/var/cache/apache directory and recreated it with permissions 777 and
user and group ownership of whatever the apache process is running as. 
No dice, still the same error.

All of this is under the Cygwin-packaged Apache 1.3.24-5.  I tried to be
a good little hacker and figure out the heart of what's causing the
issue, but I must admit I can't figure out why the unlink/rename fails. 
I tried changing line 1414 of proxy_util.c to use "0777" instead of
"0622" and recompiling[1] in the hopes that it would somehow change
things, but it had no effect.

Thanks for any tips.  Apologies if this should be sent to the apache
list.  (I can never figure out what's OK and what's Verboten with you
guys as far as asking for help.  I guess it's just another form of
Because We Are Mean.)

Brian

[1] Aren't cygwin source packages supposed to compile easily, based on
the README?  I pulled out a significant amount of hair just trying to
recompile the already-patched 1.3.24-5 package.  Specificically, I had
to: modify src/Configure to use "-lgdbm_compat" instead of "-lgdbm",
move cyghttpd.dll from /usr/apache to /bin, and rebaseall.  Why is this
left up to the poor shlob (i.e. me) to figure out?  I swear I read
everything I could and that still didn't come close to half of the stuff
needed to get most packages to build.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/