Bug 770941
| Summary: | memory leaks on libvirt_virDomainGetMemoryParameters | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Alex Jia <ajia> | ||||
| Component: | libvirt | Assignee: | Alex Jia <ajia> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 6.3 | CC: | acathrow, dallan, dyuan, mzhan, rwu, veillard, zhpeng | ||||
| Target Milestone: | rc | ||||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | libvirt-0.9.10-1.el6 | Doc Type: | Bug Fix | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2012-06-20 06:40:38 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
The memory leaks have been fixed by refactoring python binding codes:
commit 56cec18d761a1f99862c43811de60380c65881e6
Author: Guannan Ren <gren>
Date: Fri Feb 10 18:17:26 2012 +0800
python: make other APIs share common {get, set}PyVirTypedParameter
*libvirt_virDomainBlockStatsFlags
*libvirt_virDomainGetSchedulerParameters
*libvirt_virDomainGetSchedulerParametersFlags
*libvirt_virDomainSetSchedulerParameters
*libvirt_virDomainSetSchedulerParametersFlags
*libvirt_virDomainSetBlkioParameters
*libvirt_virDomainGetBlkioParameters
*libvirt_virDomainSetMemoryParameters
*libvirt_virDomainGetMemoryParameters
*libvirt_virDomainSetBlockIoTune
*libvirt_virDomainGetBlockIoTune
So move it to POST status.
That actually made 0.9.10 release so should be fixed in libvirt-0.9.10-1.el6 Daniel Tested with: libvirt-python-0.9.10-1.el6.x86_64 valgrind result is attached. Test passed. Created attachment 563848 [details]
vargrind result
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2012-0748.html |
Description of problem: Memory leak on libvirt_virDomainGetMemoryParameters API. Version-Release number of selected component (if applicable): libvirt-python-0.9.9-0rc1.el6.x86_64.rpm How reproducible: always Steps to Reproduce: 1. Paste the following codes into test.py: import libvirt con = libvirt.open(None) dom = con.lookupByName('foo') dom.memoryParameters(0) 2. valgrind -v --leak-check=full python test.py Actual results: ==2767== 120 bytes in 3 blocks are definitely lost in loss record 1,467 of 2,085 ==2767== at 0x4A05FDE: malloc (vg_replace_malloc.c:236) ==2767== by 0x39E1A85EC3: PyObject_Malloc (obmalloc.c:935) ==2767== by 0x39E1A77831: _PyLong_New (longobject.c:75) ==2767== by 0x39E1A79EB6: PyLong_FromLongLong (longobject.c:864) ==2767== by 0xB8F8D98: libvirt_virDomainGetMemoryParameters (libvirt-override.c:998) ==2767== by 0x39E1ADE7F3: PyEval_EvalFrameEx (ceval.c:3794) ==2767== by 0x39E1ADF99E: PyEval_EvalFrameEx (ceval.c:3880) ==2767== by 0x39E1AE0466: PyEval_EvalCodeEx (ceval.c:3044) ==2767== by 0x39E1AE0541: PyEval_EvalCode (ceval.c:545) ==2767== by 0x39E1AFB88B: run_mod (pythonrun.c:1351) ==2767== by 0x39E1AFB95F: PyRun_FileExFlags (pythonrun.c:1337) ==2767== by 0x39E1AFCE4B: PyRun_SimpleFileExFlags (pythonrun.c:941) ==2767== ==2767== 155 bytes in 3 blocks are definitely lost in loss record 1,515 of 2,085 ==2767== at 0x4A05FDE: malloc (vg_replace_malloc.c:236) ==2767== by 0x39E1A85EC3: PyObject_Malloc (obmalloc.c:935) ==2767== by 0x39E1A9053C: PyString_FromString (stringobject.c:138) ==2767== by 0xB8F8DAC: libvirt_virDomainGetMemoryParameters (libvirt-override.c:1015) ==2767== by 0x39E1ADE7F3: PyEval_EvalFrameEx (ceval.c:3794) ==2767== by 0x39E1ADF99E: PyEval_EvalFrameEx (ceval.c:3880) ==2767== by 0x39E1AE0466: PyEval_EvalCodeEx (ceval.c:3044) ==2767== by 0x39E1AE0541: PyEval_EvalCode (ceval.c:545) ==2767== by 0x39E1AFB88B: run_mod (pythonrun.c:1351) ==2767== by 0x39E1AFB95F: PyRun_FileExFlags (pythonrun.c:1337) ==2767== by 0x39E1AFCE4B: PyRun_SimpleFileExFlags (pythonrun.c:941) ==2767== by 0x39E1B094CE: Py_Main (main.c:577) Expected results: Additional info: