If you have pool_size defined can you tell me if putting pool_size=0 in your DAL solves this problem?
Anyway I got really interested in this, for some unknown to me reason, and decided to create a *VERY CRUDE* decorator to memory check your controller functions for leaks, I guess with time we could refine this if there's a desire to have a memory leak checker for controller functions in web2py. I hope it helps, if it doesn't at least it was fun to code. def memcheck(f): """ A crude decorator to memory check your web2py controller's functions. False positives are possible if your controller function returns less than common stuff. Put it in your models and then decorate your controller functions. example: @memcheck def index(): response.flash = T("Welcome to web2py!") return dict(message=T('Hello World')) BEERWARE - You should try to buy Leonel Câmara beers! """ from functools import wraps from collections import Counter, Mapping, Iterable from gluon.languages import lazyT from gc import get_objects def get_value_objects(v): """ Generate an object for each value in a value including itself. """ if isinstance(v, basestring): yield v elif isinstance(v, lazyT): yield v yield v.s # Check lazyT symbols dict for i in v.s: for new_v in get_value_objects(i): yield new_v elif isinstance(v, Mapping): yield v for i in v.values(): for new_v in get_value_objects(i): yield new_v elif isinstance(v, Iterable): yield v for i in v: for new_v in get_value_objects(i): yield new_v else: yield v @wraps(f) def wrapper(*args, **kwargs): before = Counter(type(obj) for obj in get_objects()) result = f(*args, **kwargs) after = Counter(type(obj) for obj in get_objects()) result_objs = Counter(type(obj) for obj in get_value_objects(result )) count = after - before - result_objs - Counter([Counter]) # This and other stuff put in the response or session is not a memory # leak. # So false positives may appear for what's not accounted here. if response.flash: count -= Counter(type(obj) for obj in get_value_objects(response .flash)) if response.js: count -= Counter(type(obj) for obj in get_value_objects(response .js)) # Finally we are ready to report what we have found. for k in count: print 'LEAKED: %d of type %s' % (count[k], k) return result return wrapper -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.