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
mso@oz.net
2005-04-14
Thanks everybody for the suggestions.

David Binger wrote:
> I guess that means that the StaticDirectory class is off the hook, right?

Yes, it delegates to StaticFile for all the files in question.

> Here are some other wild questions:
> What is your setting for max_children in the SCGI server?

I left it at the default (5), but changed it to 1 per the suggestions on
this list.  It didn't help.  What's this about a SCGI config file?  I
don't know any config file, just max_children in quixote.scgi_server.run
and --max children in quixote.scgi_server.main .

> Does this problem happen in a non https connection from the client?

That doesn't make any difference either.  I've tried https and http on
2.0, and http on 1.3.

> With what options are you constructing StaticFile?

follow_symlinks=True, index_filenames=['index.html'], list_directory=True

Sometimes I also have use_cache=False, cache_time=None , which are the
defaults anyway.

> You did say this is only with those two browsers on Windows, right?

The SCGI Reload problem is happening on several browsers: Firefox/Linux,
Konqueror/Linux, IE/Windows, Firefox/Windows.  I'm not sure about Netcape
4/Windows or any Mac browsers.

The cgi2scgi / FastCGI delay problem is verified on Firefox/Linux,
Konqueror/Linux, and Firefox/Windows.

>> several seconds to render the object and sometimes it times out.  This
happens only with Reload, not if you press Enter in the browser's
address
>> box.  (Testing on Firefox/Linux, server on same computer.)
>
> Wierd.  I don't remember ever seeing that.

Are you sure you've tested it?  It's not something people frequently do,
so maybe nobody has noticed it until now.

>> I ran the SCGI server under strace to see why it's delaying.  The delay
happens at a socket accept() call.  I don't know a lot of C but it
looks
>> like it has handled several requests by that time, maybe all of them. So
>> I don't know if the problem is in the SCGI server, mod_scgi[1-2], packets
>> coming too early or late, or what.
>
> Is the request being sent to SCGI before, or after, the observed delay?

After.  The log entry appears when the object appears.  Or if you press
Stop, the log entry doesn't appear (although once it did).

I tried David Cooke's scgi-cgi-0.9 driver but it also has the same delay.
Also, I got some warnings from the compiler:

mso@tux ~/src/scgi-cgi-0.9 $ cat /tmp/scgi-cgi-compile-error
mso@tux ~/src/scgi-cgi-0.9 $ make SERVER_HOST=127.0.0.1 SERVER_PORT=3000
gcc -g -Wall -W -O2 -DSERVER_HOST=127.0.0.1 -DSERVER_PORT=3000 -o scgi.cgi
scgi.c
scgi.c: In function `get_config':
scgi.c:136: warning: unused parameter `argv0'
scgi.c: In function `main':
scgi.c:368: warning: unused parameter `argc'
mso@tux ~/src/scgi-cgi-0.9 $ make strip
strip scgi.cgi

I couldn't get it to compile with -DDEBUG:

mso@tux ~/src/scgi-cgi-0.9 $ cat /tmp/gcc-errors
$ gcc -g -Wall -W -O2 -DDEBUG  -o scgi.cgi scgi.c
scgi.c: In function `pdebug':
scgi.c:37: error: too few arguments to function `vfprintf'
scgi.c: In function `main':
scgi.c:368: warning: unused parameter `argc'
mso@tux ~/src/scgi-cgi-0.9 $ gcc -g -Wall -W -O2   -o scgi.cgi scgi.c
scgi.c: In function `main':
scgi.c:368: warning: unused parameter `argc'

First I tried putting -DDEBUG in CCFLAGS= in the Makefile.  Then I tried
running gcc manually.

So far the best strategy is to stick with mod_scgi but keep the static
directory out of the application.  That way the Reload errors are limited
to the logos and stylesheet.  But it means I have to use a second
authentication level around the static pages (Basic Authentication with a
static password list), which means some people have to login twice with
two different passwords unless I set up Apache-LDAP.  But that's better
than errors on static pages (alarming to the user) or delays/timeouts
(really unacceptable).  The application is going to be used in a major
drill on Monday so I need to have it in "least bad" condition.  But on a
more positive note, Quixote has been running very reliable except for
this, and the testers have commented they can't make it break otherwise.

-- Mike Orr 


reply