
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@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel