Once in a while we have had reports of memory leaks. I and others could never reproduce it. Today I managed to reproduce it.
On a Mac Pro I was able to reproduce a memory leak of 2000Kb/request with python 2.5, 2.7 and all previous version of web2py. What is really odd is that some of us have run the same tests on other platforms (including other macs) and have not observed the problem. I have run the same tests myself before and I have not seen it before. I was able to determine that the problem was caused by cache.disk which is initialized whether you want it or not and had an overly complicated logic mechanism. I do not believe the memory leak was caused by the lock itself but, to the best of what I could determine, by a circular reference in the shelve object itself. Anyway. THIS IS NOW FIXED FOR GOOD! :-) First of all the circular reference has been removed and the logic simplified. The problem disappeared. Moreover the creating of cache.ram and cache.disk is now lazy so they are only initialized when used. This resulted in a 14% speedup in a typical hello world app. If you are using cache extensively you may want to check out trunk and/or nightly built. Please report any problem. Massimo --

