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.

Reply via email to