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