Red Hat Bugzilla – Bug 977961
libvirtd leaks URI on destination when migrating
Last modified: 2013-11-21 04:03:54 EST
Description of problem: libvirtd leaks URI on destination when migrating Version-Release number of selected component (if applicable): libvirt-0.10.2-18.el6_4.9 How reproducible: 100 % Steps to Reproduce: 1. (on host A): migrate a domain: virsh migrate dom qemu+ssh://hostB/system tcp://hostB 2. (on host B): URI is not freed, as shown by valgrind Actual results: Valgrind on the destination shows a leak: ==2435== 84 (80 direct, 4 indirect) bytes in 1 blocks are definitely lost in loss record 517 of 717 ==2435== at 0x4A0577B: calloc (vg_replace_malloc.c:593) ==2435== by 0x4E7877D: virAlloc (memory.c:100) ==2435== by 0x4E9E9D9: virURIParse (viruri.c:170) ==2435== by 0x47806E: qemuMigrationPrepareDirect (qemu_migration.c:1610) ==2435== by 0x454743: qemuDomainMigratePrepare3 (qemu_driver.c:10021) ==2435== by 0x4F00F6E: virDomainMigratePrepare3 (libvirt.c:6131) ==2435== by 0x42E1EE: remoteDispatchDomainMigratePrepare3Helper (remote.c:3534) ==2435== by 0x4F5E0E1: virNetServerProgramDispatch (virnetserverprogram.c:431) ==2435== by 0x4F5F3CD: virNetServerProcessMsg (virnetserver.c:170) ==2435== by 0x4F5FA6B: virNetServerHandleJob (virnetserver.c:191) ==2435== by 0x4E8337B: virThreadPoolWorker (threadpool.c:144) ==2435== by 0x4E82C68: virThreadHelper (threads-pthread.c:161) Expected results: URI is freed properly. Additional info: Fixed upstream by: commit ddf8ad82eb5f638d6153f4b1869af17dca572e67 Author: Jiri Denemark <jdenemar@redhat.com> AuthorDate: 2013-06-18 13:38:55 +0200 Commit: Jiri Denemark <jdenemar@redhat.com> CommitDate: 2013-06-18 14:49:20 +0200 qemu: Avoid leaking uri in qemuMigrationPrepareDirect git describe: v1.0.6-91-gddf8ad8 contains: v1.1.0-rc1~75
Downstream patch posted: http://post-office.corp.redhat.com/archives/rhvirt-patches/2013-June/msg00608.html
Created attachment 771355 [details] valgrind
There's a double free in the logs in comment 7: ==15763== Invalid free() / delete / delete[] / realloc() ==15763== at 0x4A063F0: free (vg_replace_malloc.c:446) ==15763== by 0x4E768B8: virFree (memory.c:419) ==15763== by 0x4AAE37: qemuMigrationPrepareDirect (qemu_migration.c:1656) ==15763== by 0x454893: qemuDomainMigratePrepare3 (qemu_driver.c:10039) ... ==15763== Address 0x13a72ea0 is 0 bytes inside a block of size 11 free'd ==15763== at 0x4A063F0: free (vg_replace_malloc.c:446) ==15763== by 0x4E768B8: virFree (memory.c:419) ==15763== by 0x4E9CBD6: virURIFree (viruri.c:325) ==15763== by 0x4AAE2D: qemuMigrationPrepareDirect (qemu_migration.c:1655) Moving back to POST: http://post-office.corp.redhat.com/archives/rhvirt-patches/2013-July/msg00214.html
*** Bug 982544 has been marked as a duplicate of this bug. ***
because of Bug 984793, i can't start a guest. so need to verify it later when that bug fixed.
Created attachment 777147 [details] valgrind msg 0723
None of the leaks in the log in comment 14 seem significant to me.
Retest this bug with libvirt-0.10.2-29.el6.x86_64, valgrind result is same with comment 13, so move this bug to VERIFIED.
(In reply to yanbing du from comment #16) > Retest this bug with libvirt-0.10.2-29.el6.x86_64, valgrind result is same > with comment 13, so move this bug to VERIFIED. Should be comment 14
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/RHBA-2013-1581.html