[Zope] - Httpdapy and Zope problems
Andreas Kostyrka
andreas@ag.or.at
Sun, 13 Dec 1998 18:28:43 +0100 (CET)
On Sun, 13 Dec 1998, Paul Everitt wrote:
> Presumably on Linux, right? Want to share the details of your kernel
> versions, etc. and any lessons you learned along the way?
Developed on a RH5.1 (in reality a RH5.x with x some float between 1 and
2, I'm usually upgrading systems partially without disturbing the uptime
:) )
Deployed on a Suse 5.3 with a statically compiled python (the python was
compiled statically on a RH5.x box).
Lessons:
-) Python 1.5.1 seems to report exceptions in threads via C language
mechanism (at least the first line, ``Unexpected exception ...''.
So I'm using the following SaveThread class:
class SaveThread(threading.Thread):
savethread=1
def run(self):
try:
threading.Thread.run(self)
except SystemExit:
raise
except:
import CGIResponse
r=CGIResponse.Response()
exp=sys.exc_info()
res=r.format_exception(exp[0],exp[1],exp[2])
logger("loggerSupport>SaveThread/run:exception",string.joinfields(re
s,"\n"))
-) Mixing lowlevel threads and hilevel threads (threading module)
works, but generates many Dummy Thread objects that cannot do a thing
:(
So probably stick with one of these two :)
-) There are a number of cool things that one can do once one started to
use threads, like DebuggingServer (more or less a Python shell that
is executed inside the LRP), ...
-) One thing to look out is, that on Linux/glibc2 each pthread seems to
use up one file descriptor. (Not so cool in my application that soaks
up filedescriptors quite fast :( )
One a side note, fork() and sys.exit() do not coexist peacefully it seems
with pcgi, while fork() and exec() do so. I guess pcgi is overwriting
sys.exit and shutdowns the LRP when one of the childs calls sys.exit :(
Andreas
--
Win95: n., A huge annoying boot virus that causes random spontaneous system
crashes, usually just before saving a massive project. Easily cured by
UNIX. See also MS-DOS, IBM-DOS, DR-DOS, Win 3.x, Win98.