durusmail: quixote-users: Overlaying a static directory
Overlaying a static directory
2005-04-11
2005-04-12
2005-04-12
2005-04-12
2005-04-13
2005-04-13
2005-04-14
2005-04-14
2005-04-14
2005-04-14
2005-04-14
2005-04-14
2005-04-14
2005-04-14
2005-04-14
2005-04-14
David Binger (3 parts)
2005-04-14
2005-04-14
2005-04-13
2005-04-14
2005-04-14
2005-04-13
SCGI util.
2005-04-12
2005-04-13
2005-04-13
2005-04-13
2005-04-13
Overlaying a static directory
Neil Schemenauer
2005-04-14
On Wed, Apr 13, 2005 at 04:09:05PM -0700, mso@oz.net wrote:
> 5) Start tcpdump to /tmp/reload.dat .  Press Reload in browser.  Internal
> Server Error appears in browser.  Quit tcpdump.

All of the tcpdump files you sent show normal Apache<->SCGI server
conversations.  In this case, there is only one request (for
/shields-beta/apache/).  Can you check the Apache access log and
see which URL produced the 500 error?  The date of the request
should be near Wed, 13 Apr 2005 22:41:00 GMT.

I suspect the error was generated during a request for the
apache_pb.gif image.  If the tcpdump is accurate then Apache didn't
actually send a request to the SCGI server for that URL.  That
implies that it is either an Apache bug or a mod_scgi bug.  However,
I understand you see that bug with both Apache 1 and 2 and with my
cgi2scgi program and David Cooke's program.  That's baffling.

Can you redo the capture, this time grabbing both HTTP and SCGI
traffic?  E.g.:

    tcpdump -i lo -s 9000 -w scgi.dat port 3000 or port 80

With that above command you would have to connect the browser to
'localhost'.  Also, can you send me the Apache access and error logs
for those requests.  You don't need to produce separate capture
files, just leave tcpdump run until you get a 500 error.

I have a theory on why StaticDirectory is causing a problem.  It
probably sets more response headers than other pages.  You could
test this theory by adding code like this to one of the dynamic
pages:

    r = get_response()
    r.set_header('X-Test-1', 'a'*40)
    r.set_header('X-Test-2', 'a'*40)
    r.set_header('X-Test-3', 'a'*40)

Thanks for spending time trying to track this done.

  Neil

reply