[Kimchi-devel] [RFC] Adding pynotify as dependency to solve YUM API leak

Aline Manera alinefm at linux.vnet.ibm.com
Wed May 27 16:53:56 UTC 2015


On 27/05/2015 10:33, Daniel Henrique Barboza wrote:
> Hello everyone,
>
> I've been working in a memory leak in the Host tab, in which every 
> reload of the tab
> adds up 4Mb in the heap mem size of Kimchi. This may seem small but it 
> really adds up
> when running kimchi from a long time and with multiple users.
>
> The leak is being generated in the YUM API, where each new instance is 
> leaving objects
> in the heap. AFAIK it doesn't matter if you force the python GC to 
> clear the object (calling
> del <obj>) because the API reportedly does not clean itself properly 
> due to circular references
> within its code. yum-updated itself runs the API in a separated, 
> short-lived helper to contain
> the leak problems of the API.
>

Ops... lol

> The API is used to get the repository list and the packages to be 
> updated (RPM/YUM distros only).
> The latter can be done by parsing yum check-update with minimal debug 
> level. The former is
> a little trickier but can be done by reading the .repo files in 
> /etc/yum.repos.d.
>
> To make the code smarter (ATM it refreshes all the repos from the 
> rpmdb every run of
> getList() ) I would like to use pyinotify. This is a python API for 
> inotify, a kernel module
> that sends file system notifications to user space. That way I can 
> refresh the repo
> list only if there is any chance in the repository dir.
>

ACK

>
> Thoughts?
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>




More information about the Kimchi-devel mailing list