mdragon at rackspace.com
Wed Jan 28 20:59:12 EST 2009
Ok, this is an odd one, any clues we can get would help. Environment mod_python 3.1.4 w/ python 2.4 on Ubuntu dapper We have a web app running under mod_python (it uses an obscure templating language/framework called PSE http://nick.borko.org/pse/) We are having an intermittent glitch which is truely bizarre. Periodically, one module deep in this large webapp is losing it's global namespace. On our production servers, this happens on random occasional basis, but we have replicated it on another machine. On that machine it was happening every other pagehit, and is now happening every pagehit except the first one after restarting apache (we don't know why this changed). This manifests in mindbenders like: we will import a module, (like 'sys') like so: import sys class SomeClass() def __init__(self, args, go, here): sys.stderr.write('Some message') This will run fine on the first hit, then subsequently will produce an exception saying that "'NoneType' object has no attribute 'stderr'" !! And it's not just 'sys' that that happens to. if we catch the exception and print the contents of globals() at that point, ALL of the modules imported, and any global variables have their values set to None! As far as we can tell, it is only happening to this one module in our (large, hundreds of modules) codebase. The module itself is actually generated code, generated by the ZSI-2.0 SOAP library, and we've exercised this code from the command line hundreds of times without fail, running it in a loop. It only fails like this in the mod_python environment, and then, not every time. Does anyone have an idea of where to even begin to figure this out? -- --M. Dragon Confidentiality Notice: This e-mail message (including any attached or embedded documents) is intended for the exclusive and confidential use of the individual or entity to which this message is addressed, and unless otherwise expressly indicated, is confidential and privileged information of Rackspace. Any dissemination, distribution or copying of the enclosed material is prohibited. If you receive this transmission in error, please notify us immediately by e-mail at abuse at rackspace.com, and delete the original message. Your cooperation is appreciated.