|
Stéphane Bidoul
stephane.bidoul at softwareag.com
Wed Aug 25 20:07:15 EDT 2004
Hi Grisha,
On Windows, when you start (or restart) an Apache instance while
multiple clients are attempting to connect, it seems that
serveral threads import the PythonHandler module simultaneously,
which leads to many kinds of weird behaviours and general
unstability.
You can reproduce with the following PythonHandler:
import time, os, thread
from mod_python import apache
f = open("c:/test.log","a")
print >> f, "start import: pid=",os.getpid(),"tid=",thread.get_ident()
time.sleep(1)
print >> f, "end import: pid=",os.getpid(),"tid=",thread.get_ident()
f.close()
def handler(req):
req.write("hello")
return apache.OK
When sending several requests in the same second while the
server starts you obtain the following test.log (several
thread running the import code simultaneously):
start import: pid= 3668 tid= 808
start import: pid= 3668 tid= 4996
start import: pid= 3668 tid= 1404
start import: pid= 3668 tid= 652
start import: pid= 3668 tid= 1108
start import: pid= 3668 tid= 576
end import: pid= 3668 tid= 808
IMHO, the import of the PythonHandler should be executed
at most once for a given subinterpreter.
Is this a problem you can confirm?
If yes, any idea on how to fix it?
Thanks in advance,
-sbi
|