I run your code on a Mac and I was unable to reproduce the leak. I invite others to try with different OSes and DAL version. It will help debug it.
On Monday, 7 November 2016 19:48:35 UTC-6, Massimo Di Pierro wrote: > > Thank you for your help. We will investigate.... > Any chance you can try if the leak exists with the DAL in web2py stable? > > On Friday, 4 November 2016 21:34:52 UTC-5, Sukhmeet Toor wrote: >> >> Hi web2py-users, >> >> I have an application that runs on CherryPy (v8.1.2) on Ubuntu (14.04.5 >> LTS) and python 2.7.6. I use standalone pyDAL (v16.09) to connect to my >> MySQL DB on AWS RDS. I'm seeing a constant memory leak on my servers which >> causes the process to use up 100% of RAM in a few hours and eventual die a >> painful death (no SWAP enabled; enabling SWAP pushes back certain death a >> little). >> >> I have managed to reproduce the leak with a very small loop that >> repeatedly opens and closes the DAL object. I confirmed that memory >> continues to grow using htop and will eventually end up using 100% of RAM. >> I thought it was an MySQL adapter specific problem but I was able to repro >> it with the default sqlite adapter as well. >> >> from pydal import DAL >> >> def open_close_dal(): >> sql = DAL() >> sql.close() >> >> if __name__ == '__main__': >> while True: >> open_close_dal() >> >> >> I read some really old threads on this issue that suggested calling >> sql._adapter.close() or sql._adapter.close_all_instances() or del sql but it >> doesn't seem to make a difference. I've tried tracking down the memory leak >> and managed to confirm that it is the guts of the DAL that are leaking. One >> iteration of the loop, with pympler.tracker enabled reports these objects >> created: >> >> >> types | # objects | total size >> ============================================ | =========== | ============ >> dict | 672 | 423.38 KB >> list | 3525 | 354.35 KB >> str | 2851 | 162.49 KB >> <class 'collections.OrderedDict | 129 | 135.02 KB >> code | 585 | 73.12 KB >> <class 'pydal.dialects.MetaDialect | 32 | 28.25 KB >> <class 'pydal.parsers.MetaParser | 17 | 15.01 KB >> type | 16 | 14.12 KB >> <class 'pydal.representers.MetaRepresenter | 16 | 14.12 KB >> tuple | 168 | 12.85 KB >> <class 'pydal.dialects.sqltype_for | 178 | 11.12 KB >> weakref | 89 | 7.65 KB >> int | 258 | 6.05 KB >> <class 'pydal.representers.for_type | 49 | 3.06 KB >> function (wrap) | 25 | 2.93 KB >> >> >> Is this a known issue? I've been pulling out my hair with this for a few >> days now and would love any insight into it. >> >> >> Thanks in advance, >> >> Sukhmeet >> >> >> p.s. Older threads on this topic, which no solution that worked for me: >> >> https://groups.google.com/forum/#!newtopic/web2py/web2py/hmsupVHdDHo >> >> http://stackoverflow.com/questions/5539722/standalone-web2py-dal-with-pyramid-requests-threads-and-memory >> >> >> -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.

