Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1161124 - small memory leak in migration
small memory leak in migration
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: libvirt (Show other bugs)
7.1
All Linux
low Severity low
: rc
: ---
Assigned To: Ján Tomko
Virtualization Bugs
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2014-11-06 07:52 EST by Ján Tomko
Modified: 2015-03-05 02:47 EST (History)
5 users (show)

See Also:
Fixed In Version: libvirt-1.2.8-7.el7
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2015-03-05 02:47:07 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:0323 normal SHIPPED_LIVE Low: libvirt security, bug fix, and enhancement update 2015-03-05 07:10:54 EST

  None (edit)
Description Ján Tomko 2014-11-06 07:52:03 EST
Description of problem:
A few bytes are leaked when migrating.

Version-Release number of selected component (if applicable):
libvirt-1.2.8-6.el7

How reproducible:
99.997 %

Steps to Reproduce:
1. host1# valgrind --leak-check=full libvirtd
2. migrate a domain to host1

Actual results:
==10274== 232 bytes in 1 blocks are definitely lost in loss record 669 of 758
==10274==    at 0x4C2B934: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==10274==    by 0x52A2BF3: virAlloc (viralloc.c:144)
==10274==    by 0x1D49AD70: qemuMigrationCookieAddStatistics (qemu_migration.c:554)
==10274==    by 0x1D49AD70: qemuMigrationBakeCookie (qemu_migration.c:1228)
==10274==    by 0x1D4A43B8: qemuMigrationFinish (qemu_migration.c:5002)
==10274==    by 0x1D4C9339: qemuDomainMigrateFinish3Params (qemu_driver.c:11526)
==10274==    by 0x538D7B0: virDomainMigrateFinish3Params (libvirt.c:7078)
==10274==    by 0x125CDD: remoteDispatchDomainMigrateFinish3Params (remote.c:5734)
==10274==    by 0x125CDD: remoteDispatchDomainMigrateFinish3ParamsHelper (remote_dispatch.h:5789)
==10274==    by 0x53F5841: virNetServerProgramDispatchCall (virnetserverprogram.c:437)
==10274==    by 0x53F5841: virNetServerProgramDispatch (virnetserverprogram.c:307)
==10274==    by 0x15029C: virNetServerProcessMsg (virnetserver.c:172)
==10274==    by 0x15029C: virNetServerHandleJob (virnetserver.c:193)
==10274==    by 0x52FA5E4: virThreadPoolWorker (virthreadpool.c:145)
==10274==    by 0x52F9F7D: virThreadHelper (virthread.c:197)
==10274==    by 0x8516DF2: start_thread (in /usr/lib64/libpthread-2.17.so)


Expected results:
The statistics are properly freed.

Additional info:
Upstream patch:
https://www.redhat.com/archives/libvir-list/2014-November/msg00148.html
Comment 1 Ján Tomko 2014-11-06 07:54:26 EST
Fixed upstream by:
commit 1d1c5ecd1360d74292a5db18fbd90fe27ec2551b
Author:     Ján Tomko <jtomko@redhat.com>
AuthorDate: 2014-11-06 12:24:46 +0100
Commit:     Ján Tomko <jtomko@redhat.com>
CommitDate: 2014-11-06 13:52:33 +0100

    Free job statistics from the migration cookie
    
    ==404== 232 bytes in 1 blocks are definitely lost in loss record 669 of 758
    ==404==    at 0x4C2B934: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==404==    by 0x52A2BF3: virAlloc (viralloc.c:144)
    ==404==    by 0x1D49AD70: qemuMigrationCookieAddStatistics (qemu_migration.c:554)
    ==404==    by 0x1D49AD70: qemuMigrationBakeCookie (qemu_migration.c:1228)
    ==404==    by 0x1D4A43B8: qemuMigrationFinish (qemu_migration.c:5002)
    ==404==    by 0x1D4C9339: qemuDomainMigrateFinish3Params (qemu_driver.c:11526)
    
    Introduced by commit 5d6fb96

git describe: v1.2.10-25-g1d1c5ec
Comment 5 zhenfeng wang 2014-11-19 05:52:58 EST
I can reproduce this bug with libvirt-1.2.8-6.el7 with the comment 0's step 

#virsh migrate --live rhel7 qemu+ssh://$target_ip/system --verbose
# valgrind --leak-check=full libvirtd
--
==1493== 8 bytes in 1 blocks are definitely lost in loss record 70 of 689
==1493==    at 0x4C2BB0A: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==1493==    by 0x529A37F: virReallocN (viralloc.c:245)
==1493==    by 0x5331202: virDomainObjListExport (domain_conf.c:20804)
==1493==    by 0x538B4E2: virConnectListAllDomains (libvirt.c:8960)
==1493==    by 0x129FBE: remoteDispatchConnectListAllDomains (remote.c:1551)
==1493==    by 0x129FBE: remoteDispatchConnectListAllDomainsHelper (remote_dispatch.h:1072)
==1493==    by 0x53EDFF1: virNetServerProgramDispatchCall (virnetserverprogram.c:437)
==1493==    by 0x53EDFF1: virNetServerProgramDispatch (virnetserverprogram.c:307)
==1493==    by 0x1501FC: virNetServerProcessMsg (virnetserver.c:172)
==1493==    by 0x1501FC: virNetServerHandleJob (virnetserver.c:193)
==1493==    by 0x52F26C4: virThreadPoolWorker (virthreadpool.c:145)
==1493==    by 0x52F205D: virThreadHelper (virthread.c:197)
==1493==    by 0x7C64DF2: start_thread (in /usr/lib64/libpthread-2.17.so)
==1493==    by 0x837605C: clone (in /usr/lib64/libc-2.17.so)

==1493== 232 bytes in 1 blocks are definitely lost in loss record 608 of 689
==1493==    at 0x4C2B934: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==1493==    by 0x529A283: virAlloc (viralloc.c:144)
==1493==    by 0x1C493049: qemuMigrationCookieStatisticsXMLParse (qemu_migration.c:902)
==1493==    by 0x1C493049: qemuMigrationCookieXMLParse (qemu_migration.c:1143)
==1493==    by 0x1C493049: qemuMigrationCookieXMLParseStr (qemu_migration.c:1172)
==1493==    by 0x1C493049: qemuMigrationEatCookie (qemu_migration.c:1254)
==1493==    by 0x1C497032: qemuMigrationConfirmPhase (qemu_migration.c:3109)
==1493==    by 0x1C499491: qemuMigrationConfirm (qemu_migration.c:3203)
==1493==    by 0x5386266: virDomainMigrateConfirm3Params (libvirt.c:7123)
==1493==    by 0x125A00: remoteDispatchDomainMigrateConfirm3Params (remote.c:5795)
==1493==    by 0x125A00: remoteDispatchDomainMigrateConfirm3ParamsHelper (remote_dispatch.h:5635)
==1493==    by 0x53EDFF1: virNetServerProgramDispatchCall (virnetserverprogram.c:437)
==1493==    by 0x53EDFF1: virNetServerProgramDispatch (virnetserverprogram.c:307)
==1493==    by 0x1501FC: virNetServerProcessMsg (virnetserver.c:172)
==1493==    by 0x1501FC: virNetServerHandleJob (virnetserver.c:193)
==1493==    by 0x52F26C4: virThreadPoolWorker (virthreadpool.c:145)
==1493==    by 0x52F205D: virThreadHelper (virthread.c:197)
==1493==    by 0x7C64DF2: start_thread (in /usr/lib64/libpthread-2.17.so)
==1493== 
==1493== 464 bytes in 2 blocks are definitely lost in loss record 637 of 689
==1493==    at 0x4C2B934: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==1493==    by 0x529A283: virAlloc (viralloc.c:144)
==1493==    by 0x1C4924E0: qemuMigrationCookieAddStatistics (qemu_migration.c:552)
==1493==    by 0x1C4924E0: qemuMigrationBakeCookie (qemu_migration.c:1217)
==1493==    by 0x1C494A6F: qemuMigrationRun (qemu_migration.c:3735)
==1493==    by 0x1C495B73: doNativeMigrate (qemu_migration.c:3817)
==1493==    by 0x1C49B71B: qemuMigrationPerformPhase (qemu_migration.c:4628)
==1493==    by 0x1C49B71B: qemuMigrationPerform (qemu_migration.c:4714)
==1493==    by 0x1C4C198C: qemuDomainMigratePerform3Params (qemu_driver.c:11690)
==1493==    by 0x5385C5B: virDomainMigratePerform3Params (libvirt.c:7034)
==1493==    by 0x125ED3: remoteDispatchDomainMigratePerform3Params (remote.c:5678)
==1493==    by 0x125ED3: remoteDispatchDomainMigratePerform3ParamsHelper (remote_dispatch.h:6006)
==1493==    by 0x53EDFF1: virNetServerProgramDispatchCall (virnetserverprogram.c:437)
==1493==    by 0x53EDFF1: virNetServerProgramDispatch (virnetserverprogram.c:307)
==1493==    by 0x1501FC: virNetServerProcessMsg (virnetserver.c:172)
==1493==    by 0x1501FC: virNetServerHandleJob (virnetserver.c:193)
==1493==    by 0x52F26C4: virThreadPoolWorker (virthreadpool.c:145)

also the mem leak has gone while i update the libvirt to libvirt-1.2.8-7,  so 
mark this bug verified
Comment 7 errata-xmlrpc 2015-03-05 02:47:07 EST
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.

https://rhn.redhat.com/errata/RHSA-2015-0323.html

Note You need to log in before you can comment on or make changes to this bug.