Hi Eric, Thanks for your comment, the PyDict_SetItem still works well for me, I can get a expected result by calling related python binding API, Doesn't it work for you? In addition, you mean we need a cleanup patch to fix all of memory leaks issues, right? or need to define a global cleanup function to do this? For side effect, in fact, I can't understand this now :( maybe, you may give me more details. Thanks a lot! Alex ----- Original Message ----- From: "Eric Blake" <eblake@xxxxxxxxxx> To: ajia@xxxxxxxxxx Cc: libvir-list@xxxxxxxxxx Sent: Sunday, January 1, 2012 7:52:21 AM Subject: Re: [PATCH 1/3] python: Fix memory leaks on libvirt_virDomainGetSchedulerParameters On 12/31/2011 03:29 AM, ajia@xxxxxxxxxx wrote: > From: Alex Jia <ajia@xxxxxxxxxx> > > Detected by valgrind. Leaks introduced in commit 62094f7 and commit c5cf6e1. > > key = libvirt_constcharPtrWrap(params[i].field); > PyDict_SetItem(info, key, val); > + Py_DECREF(key); > + Py_DECREF(val); Can PyDict_SetItem() fail? If so, shouldn't we be recovering from that failure by cleaning up memory and returning a proper error, rather than blindly proceeding on? We ought to fix all PyDict_SetItem clients in the same way as part of a global cleanup patch in the python directory, which will have the side effect of fixing the memory leaks in the process. -- Eric Blake eblake@xxxxxxxxxx +1-919-301-3266 Libvirt virtualization library http://libvirt.org -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list