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