Things we've not gotten around to fixing yet.
CGI scripts expect that their current directory is set to the directory containing the script. However, the current directory is shared process-wide, so it is impossible to set it for one script without affecting other scripts running simultaneously. (Currently we set the current directory at the start of each script.)
Similarly, some Python structures are shared among threads when using shared interpreters.
This appears to be a problem inherent to Python 1.5.2, and, as such, should be fixed when 1.6.0 is released.
Memory leaks can be a big problem for long-running programs, and we have spent a lot of effort trying to eliminate them.
Note that it's not always obvious how memory size relates to the size of PyWX, since AOLServer may increase in size for various reasons (such as when it spawns additional threads). But if the size of AOLserver increases monotonically with each Python evaluation even after the number of threads has stabilized, that is good evidence of a problem. If you install ApacheBench (which comes in the apache distribution) you can check for leaks by writing a simple `test.py' script and running e.g.
ab -c 1 -n 10000 http://localhost/python/test.py
Release 0.6 has one known memory leak when CGI-emulation is switched on--namely, the strings set in os.environ never get freed. It may have others as well but nothing too obvious.
`intern'ed Python strings are shared process-wide, so there would be a memory leak if varying strings would get interned. You can get more information from the Python documentation for the built-in function `intern()'.
Scripts running under PyWX can, of course, also cause memory leaks if they create circular references (unfreeable by Python's reference-counting scheme) or import buggy C extension modules.