Guido van Rossum
guido at python.org
Mon Dec 17 16:01:35 EST 2001
> okay, i'm running Python 2.1.1, mod_python 2.7.6, and apache 1.3.19 > under Linux 2.2.14. the mod_python module is build statically. > > after hitting our app a couple of times, i sporadically receive the > following error: > > 'import site' failed; traceback: > Traceback (most recent call last): > File "/usr/local/lib/python2.1/site.py", line 60, in ? > import sys, os > File "/usr/local/lib/python2.1/os.py", line 54, in ? > __all__.extend(_get_exports_list(posix)) > File "/usr/local/lib/python2.1/os.py", line 35, in _get_exports_list > return list(module.__all__) > AttributeError: 'posix' module has no attribute '__all__' > make_obcallback(): could not import mod_python.apache. > make_obcallback(): could not call init. > > and i'm having a terrible time isolating what could be causing this to > occur. > > interesting things which could be related: > > o multiple instances of the app are running under the same apache with > different <Directory> tags handling the different apache/mod_python > settings > > o i have PythonInterpPerDir turned on > > o the problem seems most easily exaccerbated by running multiple > scripts simultaneously Here's my analysis of the case. Looking at the source code of os.py: def _get_exports_list(module): try: return list(module.__all__) except AttributeError: return [n for n in dir(module) if n[0] != '_'] the AttributeError should be caught -- but it isn't! I think this is because each Python interpreter instance initializes its own copy of the exceptions -- but store them in a global shared by all instances running in the same process! > the biggest problem i'm having (besides the error itself) is that i > can't figure out any way to tell which subinterpreter i am in when > these errors happen. i've poked through the documentation and > pythonrun.c to no avail. Can you try this with Python 2.2c1? I think we've fixed it there. If you can't try 2.2c1, try the patch to pythonrun.c from rev 2.143 to 2.144: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Python/pythonrun.c.diff?r1=2.143&r2=2.144. --Guido van Rossum (home page: http://www.python.org/~guido/)
|