Neil Schemenauer wrote:
> 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.
Take 2 with a modified Quixote demo has:
/ -- (dynamic) no errors
/apache/ -- (static) usual errors
/foo -- (dynamic) no errors
/bar -- (dynamic with extra headers) no errors
/baz -- (static, same content as bar) Internal Server Error often
_q_exports = ["", "simple", "plain", "error", "publish_error", "css",
"dumpreq", "extras", ("favicon.ico", "favicon_ico"),
"apache", "foo", "bar", "baz"]
apache = StaticDirectory("/var/www/localhost/htdocs/",
follow_symlinks=True, index_filenames=["index.html"],
list_directory=True)
def foo(self):
return "Foo!"
def bar(self):
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)
return "Bar!"
from quixote.util import StaticFile
baz = StaticFile('/var/www/localhost/htdocs/baz')