Bug 770940
| Summary: | memory leaks on libvirt_virDomainGetSchedulerParameters | ||||||
|---|---|---|---|---|---|---|---|
| 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:35 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.
This also made 0.9.10 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 563857 [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 leaks on libvirt_virDomainGetSchedulerParameters and libvirt_virDomainGetSchedulerParametersFlags APIs. 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.schedulerParameters() dom.schedulerParametersFlags(0) 2. valgrind -v --leak-check=full python test.py Actual results: ==2127== 96 bytes in 3 blocks are definitely lost in loss record 1,437 of 2,083 ==2127== at 0x4A05FDE: malloc (vg_replace_malloc.c:236) ==2127== by 0x39E1A85EC3: PyObject_Malloc (obmalloc.c:935) ==2127== by 0x39E1A77831: _PyLong_New (longobject.c:75) ==2127== by 0x39E1A79EB6: PyLong_FromLongLong (longobject.c:864) ==2127== by 0xB8FA1D0: libvirt_virDomainGetSchedulerParameters (libvirt-override.c:353) ==2127== by 0x39E1ADE7F3: PyEval_EvalFrameEx (ceval.c:3794) ==2127== by 0x39E1ADF99E: PyEval_EvalFrameEx (ceval.c:3880) ==2127== by 0x39E1AE0466: PyEval_EvalCodeEx (ceval.c:3044) ==2127== by 0x39E1AE0541: PyEval_EvalCode (ceval.c:545) ==2127== by 0x39E1AFB88B: run_mod (pythonrun.c:1351) ==2127== by 0x39E1AFB95F: PyRun_FileExFlags (pythonrun.c:1337) ==2127== by 0x39E1AFCE4B: PyRun_SimpleFileExFlags (pythonrun.c:941) ==2127== ==2127== 151 bytes in 3 blocks are definitely lost in loss record 1,511 of 2,083 ==2127== at 0x4A05FDE: malloc (vg_replace_malloc.c:236) ==2127== by 0x39E1A85EC3: PyObject_Malloc (obmalloc.c:935) ==2127== by 0x39E1A9053C: PyString_FromString (stringobject.c:138) ==2127== by 0xB8FA1E4: libvirt_virDomainGetSchedulerParameters (libvirt-override.c:370) ==2127== by 0x39E1ADE7F3: PyEval_EvalFrameEx (ceval.c:3794) ==2127== by 0x39E1ADF99E: PyEval_EvalFrameEx (ceval.c:3880) ==2127== by 0x39E1AE0466: PyEval_EvalCodeEx (ceval.c:3044) ==2127== by 0x39E1AE0541: PyEval_EvalCode (ceval.c:545) ==2127== by 0x39E1AFB88B: run_mod (pythonrun.c:1351) ==2127== by 0x39E1AFB95F: PyRun_FileExFlags (pythonrun.c:1337) ==2127== by 0x39E1AFCE4B: PyRun_SimpleFileExFlags (pythonrun.c:941) ==2127== by 0x39E1B094CE: Py_Main (main.c:577) ==2127== 96 bytes in 3 blocks are definitely lost in loss record 1,437 of 2,083 ==2127== at 0x4A05FDE: malloc (vg_replace_malloc.c:236) ==2127== by 0x39E1A85EC3: PyObject_Malloc (obmalloc.c:935) ==2127== by 0x39E1A77831: _PyLong_New (longobject.c:75) ==2127== by 0x39E1A79EB6: PyLong_FromLongLong (longobject.c:864) ==2127== by 0xB8F9BE8: libvirt_virDomainGetSchedulerParametersFlags (libvirt-override.c:435) ==2127== by 0x39E1ADE7F3: PyEval_EvalFrameEx (ceval.c:3794) ==2127== by 0x39E1ADF99E: PyEval_EvalFrameEx (ceval.c:3880) ==2127== by 0x39E1AE0466: PyEval_EvalCodeEx (ceval.c:3044) ==2127== by 0x39E1AE0541: PyEval_EvalCode (ceval.c:545) ==2127== by 0x39E1AFB88B: run_mod (pythonrun.c:1351) ==2127== by 0x39E1AFB95F: PyRun_FileExFlags (pythonrun.c:1337) ==2127== by 0x39E1AFCE4B: PyRun_SimpleFileExFlags (pythonrun.c:941) ==2127== ==2127== 151 bytes in 3 blocks are definitely lost in loss record 1,511 of 2,083 ==2127== at 0x4A05FDE: malloc (vg_replace_malloc.c:236) ==2127== by 0x39E1A85EC3: PyObject_Malloc (obmalloc.c:935) ==2127== by 0x39E1A9053C: PyString_FromString (stringobject.c:138) ==2127== by 0xB8F9BFC: libvirt_virDomainGetSchedulerParametersFlags (libvirt-override.c:452) ==2127== by 0x39E1ADE7F3: PyEval_EvalFrameEx (ceval.c:3794) ==2127== by 0x39E1ADF99E: PyEval_EvalFrameEx (ceval.c:3880) ==2127== by 0x39E1AE0466: PyEval_EvalCodeEx (ceval.c:3044) ==2127== by 0x39E1AE0541: PyEval_EvalCode (ceval.c:545) ==2127== by 0x39E1AFB88B: run_mod (pythonrun.c:1351) ==2127== by 0x39E1AFB95F: PyRun_FileExFlags (pythonrun.c:1337) ==2127== by 0x39E1AFCE4B: PyRun_SimpleFileExFlags (pythonrun.c:941) ==2127== by 0x39E1B094CE: Py_Main (main.c:577) Expected results: Fix memory leaks. Additional info: