Petter Holmström wrote:
As I've alrady said, the problem is already solved in a way. Some of my external methods caused it (why they did it I don't know), but if you still think this might be a bug in Zope I'll give you the backtrace with debug information.
I think it is caused by a read conflict. Did you get and set the lock correctly before calling the command line tools? Because you did set up locks around them. Didn't you ;-) Under high loads you can risk different request calling the same command line tools several times, which one gets the answer then? Normally Zope handles concurrency, but it is not able to with command line calls. You would need to do it something like (untested): ######################################## import os from threading import Lock l = Lock() def lockedPopen(command): l.acquire() try: result = os.popen(command).read() return result finally: l.release() # external method def doFileListing(self): return lockedPopen('ls') ######################################## regards Max M