[libvirt] FYI: valgrind output from libvirtd when running the libguestfs test suite

Richard W.M. Jones rjones at redhat.com
Tue Sep 18 11:26:51 UTC 2012


./run \
  valgrind --leak-check=full --child-silent-after-fork=yes \
    --log-file=/tmp/valgrind.log \
  daemon/libvirtd --timeout=30

Then run '../libvirt/run make check' in another window.

This is with libvirt from git, updated a few hours ago.

I'm always dubious about these strlen problems since they are often
caused by glibc, but could be worth looking into.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top
-------------- next part --------------
==9863== Memcheck, a memory error detector
==9863== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==9863== Using Valgrind-3.8.0-TEST1 and LibVEX; rerun with -h for copyright info
==9863== Command: /home/rjones/d/libvirt/daemon/.libs/lt-libvirtd --timeout=30
==9863== Parent PID: 11957
==9863== 
==9863== Invalid read of size 1
==9863==    at 0x4A09042: strlen (mc_replace_strmem.c:398)
==9863==    by 0x4E98847: virHashStrCode (virhash.c:78)
==9863==    by 0x4E98D1B: virHashRemoveEntry (virhash.c:100)
==9863==    by 0x1404E364: qemuDriverCloseCallbackRun (qemu_conf.c:734)
==9863==    by 0x4E98F38: virHashForEach (virhash.c:514)
==9863==    by 0x140503C4: qemuDriverCloseCallbackRunAll (qemu_conf.c:746)
==9863==    by 0x14093D47: qemudClose (qemu_driver.c:1053)
==9863==    by 0x4F0945E: virConnectDispose (datatypes.c:144)
==9863==    by 0x4E914E2: virObjectUnref (virobject.c:139)
==9863==    by 0x4F12405: virConnectClose (libvirt.c:1458)
==9863==    by 0x42C4F6: remoteClientFreeFunc (remote.c:653)
==9863==    by 0x4F7AE61: virNetServerClientDispose (virnetserverclient.c:590)
==9863==  Address 0x1724b920 is 0 bytes inside a block of size 37 free'd
==9863==    at 0x4A07646: free (vg_replace_malloc.c:446)
==9863==    by 0x4E7DE98: virFree (memory.c:309)
==9863==    by 0x4E984F2: virHashStrFree (virhash.c:93)
==9863==    by 0x4E98D97: virHashRemoveEntry (virhash.c:470)
==9863==    by 0x140501B9: qemuDriverCloseCallbackUnset (qemu_conf.c:674)
==9863==    by 0x140561F7: qemuProcessStop (qemu_process.c:4073)
==9863==    by 0x14056A2F: qemuProcessAutoDestroy (qemu_process.c:4434)
==9863==    by 0x1404E344: qemuDriverCloseCallbackRun (qemu_conf.c:730)
==9863==    by 0x4E98F38: virHashForEach (virhash.c:514)
==9863==    by 0x140503C4: qemuDriverCloseCallbackRunAll (qemu_conf.c:746)
==9863==    by 0x14093D47: qemudClose (qemu_driver.c:1053)
==9863==    by 0x4F0945E: virConnectDispose (datatypes.c:144)
==9863== 
==9863== Invalid read of size 1
==9863==    at 0x4A09054: strlen (mc_replace_strmem.c:398)
==9863==    by 0x4E98847: virHashStrCode (virhash.c:78)
==9863==    by 0x4E98D1B: virHashRemoveEntry (virhash.c:100)
==9863==    by 0x1404E364: qemuDriverCloseCallbackRun (qemu_conf.c:734)
==9863==    by 0x4E98F38: virHashForEach (virhash.c:514)
==9863==    by 0x140503C4: qemuDriverCloseCallbackRunAll (qemu_conf.c:746)
==9863==    by 0x14093D47: qemudClose (qemu_driver.c:1053)
==9863==    by 0x4F0945E: virConnectDispose (datatypes.c:144)
==9863==    by 0x4E914E2: virObjectUnref (virobject.c:139)
==9863==    by 0x4F12405: virConnectClose (libvirt.c:1458)
==9863==    by 0x42C4F6: remoteClientFreeFunc (remote.c:653)
==9863==    by 0x4F7AE61: virNetServerClientDispose (virnetserverclient.c:590)
==9863==  Address 0x1724b921 is 1 bytes inside a block of size 37 free'd
==9863==    at 0x4A07646: free (vg_replace_malloc.c:446)
==9863==    by 0x4E7DE98: virFree (memory.c:309)
==9863==    by 0x4E984F2: virHashStrFree (virhash.c:93)
==9863==    by 0x4E98D97: virHashRemoveEntry (virhash.c:470)
==9863==    by 0x140501B9: qemuDriverCloseCallbackUnset (qemu_conf.c:674)
==9863==    by 0x140561F7: qemuProcessStop (qemu_process.c:4073)
==9863==    by 0x14056A2F: qemuProcessAutoDestroy (qemu_process.c:4434)
==9863==    by 0x1404E344: qemuDriverCloseCallbackRun (qemu_conf.c:730)
==9863==    by 0x4E98F38: virHashForEach (virhash.c:514)
==9863==    by 0x140503C4: qemuDriverCloseCallbackRunAll (qemu_conf.c:746)
==9863==    by 0x14093D47: qemudClose (qemu_driver.c:1053)
==9863==    by 0x4F0945E: virConnectDispose (datatypes.c:144)
==9863== 
==9863== Invalid read of size 4
==9863==    at 0x4E9946F: virHashCodeGen (virhashcode.c:82)
==9863==    by 0x4E98D1B: virHashRemoveEntry (virhash.c:100)
==9863==    by 0x1404E364: qemuDriverCloseCallbackRun (qemu_conf.c:734)
==9863==    by 0x4E98F38: virHashForEach (virhash.c:514)
==9863==    by 0x140503C4: qemuDriverCloseCallbackRunAll (qemu_conf.c:746)
==9863==    by 0x14093D47: qemudClose (qemu_driver.c:1053)
==9863==    by 0x4F0945E: virConnectDispose (datatypes.c:144)
==9863==    by 0x4E914E2: virObjectUnref (virobject.c:139)
==9863==    by 0x4F12405: virConnectClose (libvirt.c:1458)
==9863==    by 0x42C4F6: remoteClientFreeFunc (remote.c:653)
==9863==    by 0x4F7AE61: virNetServerClientDispose (virnetserverclient.c:590)
==9863==    by 0x4E914E2: virObjectUnref (virobject.c:139)
==9863==  Address 0x1724b920 is 0 bytes inside a block of size 37 free'd
==9863==    at 0x4A07646: free (vg_replace_malloc.c:446)
==9863==    by 0x4E7DE98: virFree (memory.c:309)
==9863==    by 0x4E984F2: virHashStrFree (virhash.c:93)
==9863==    by 0x4E98D97: virHashRemoveEntry (virhash.c:470)
==9863==    by 0x140501B9: qemuDriverCloseCallbackUnset (qemu_conf.c:674)
==9863==    by 0x140561F7: qemuProcessStop (qemu_process.c:4073)
==9863==    by 0x14056A2F: qemuProcessAutoDestroy (qemu_process.c:4434)
==9863==    by 0x1404E344: qemuDriverCloseCallbackRun (qemu_conf.c:730)
==9863==    by 0x4E98F38: virHashForEach (virhash.c:514)
==9863==    by 0x140503C4: qemuDriverCloseCallbackRunAll (qemu_conf.c:746)
==9863==    by 0x14093D47: qemudClose (qemu_driver.c:1053)
==9863==    by 0x4F0945E: virConnectDispose (datatypes.c:144)
==9863== 
==9863== 
==9863== HEAP SUMMARY:
==9863==     in use at exit: 714,934 bytes in 7,385 blocks
==9863==   total heap usage: 72,515,538 allocs, 72,508,153 frees, 12,655,485,780 bytes allocated
==9863== 
==9863== 18 bytes in 1 blocks are definitely lost in loss record 175 of 683
==9863==    at 0x4A086DC: malloc (vg_replace_malloc.c:270)
==9863==    by 0x30D0A857B1: strdup (in /usr/lib64/libc-2.16.so)
==9863==    by 0x4E96D34: virCopyError (virterror.c:184)
==9863==    by 0x4E96E54: virCopyLastError (virterror.c:282)
==9863==    by 0x14061DD7: qemuMonitorIO (qemu_monitor.c:635)
==9863==    by 0x4E758A5: virEventPollRunOnce (event_poll.c:485)
==9863==    by 0x4E73F54: virEventRunDefaultImpl (event.c:247)
==9863==    by 0x4F7A99C: virNetServerRun (virnetserver.c:751)
==9863==    by 0x40C2E9: main (libvirtd.c:1338)
==9863== 
==9863== 21 bytes in 1 blocks are definitely lost in loss record 187 of 683
==9863==    at 0x4A086DC: malloc (vg_replace_malloc.c:270)
==9863==    by 0x30D0A857B1: strdup (in /usr/lib64/libc-2.16.so)
==9863==    by 0x30E6605CBB: p11_kit_registered_module_to_name (modules.c:900)
==9863==    by 0x30E7E4845C: gnutls_pkcs11_init (in /usr/lib64/libgnutls.so.26.22.4)
==9863==    by 0x30E7E31E81: gnutls_global_init (in /usr/lib64/libgnutls.so.26.22.4)
==9863==    by 0x4F11069: virInitialize (libvirt.c:419)
==9863==    by 0x40B721: main (libvirtd.c:973)
==9863== 
==9863== 25 bytes in 1 blocks are definitely lost in loss record 211 of 683
==9863==    at 0x4A086DC: malloc (vg_replace_malloc.c:270)
==9863==    by 0x30D0A857B1: strdup (in /usr/lib64/libc-2.16.so)
==9863==    by 0x4E96D52: virCopyError (virterror.c:186)
==9863==    by 0x4E96E54: virCopyLastError (virterror.c:282)
==9863==    by 0x14061DD7: qemuMonitorIO (qemu_monitor.c:635)
==9863==    by 0x4E758A5: virEventPollRunOnce (event_poll.c:485)
==9863==    by 0x4E73F54: virEventRunDefaultImpl (event.c:247)
==9863==    by 0x4F7A99C: virNetServerRun (virnetserver.c:751)
==9863==    by 0x40C2E9: main (libvirtd.c:1338)
==9863== 
==9863== 40 bytes in 1 blocks are definitely lost in loss record 364 of 683
==9863==    at 0x4A086DC: malloc (vg_replace_malloc.c:270)
==9863==    by 0x30D0A857B1: strdup (in /usr/lib64/libc-2.16.so)
==9863==    by 0x4E96D16: virCopyError (virterror.c:182)
==9863==    by 0x4E96E54: virCopyLastError (virterror.c:282)
==9863==    by 0x14061DD7: qemuMonitorIO (qemu_monitor.c:635)
==9863==    by 0x4E758A5: virEventPollRunOnce (event_poll.c:485)
==9863==    by 0x4E73F54: virEventRunDefaultImpl (event.c:247)
==9863==    by 0x4F7A99C: virNetServerRun (virnetserver.c:751)
==9863==    by 0x40C2E9: main (libvirtd.c:1338)
==9863== 
==9863== 368 bytes in 1 blocks are possibly lost in loss record 601 of 683
==9863==    at 0x4A069CF: calloc (vg_replace_malloc.c:593)
==9863==    by 0x30D0611A28: _dl_allocate_tls (in /usr/lib64/ld-2.16.so)
==9863==    by 0x30D0E088BC: pthread_create@@GLIBC_2.2.5 (in /usr/lib64/libpthread-2.16.so)
==9863==    by 0x4E88474: virThreadCreate (threads-pthread.c:188)
==9863==    by 0x40C2AE: main (libvirtd.c:782)
==9863== 
==9863== 1,680 bytes in 5 blocks are possibly lost in loss record 648 of 683
==9863==    at 0x4A069CF: calloc (vg_replace_malloc.c:593)
==9863==    by 0x30D0611A28: _dl_allocate_tls (in /usr/lib64/ld-2.16.so)
==9863==    by 0x30D0E088BC: pthread_create@@GLIBC_2.2.5 (in /usr/lib64/libpthread-2.16.so)
==9863==    by 0x4E88474: virThreadCreate (threads-pthread.c:188)
==9863==    by 0x4E88C18: virThreadPoolNew (threadpool.c:203)
==9863==    by 0x4F7A17B: virNetServerNew (virnetserver.c:379)
==9863==    by 0x40BDF1: main (libvirtd.c:1198)
==9863== 
==9863== 1,680 bytes in 5 blocks are possibly lost in loss record 649 of 683
==9863==    at 0x4A069CF: calloc (vg_replace_malloc.c:593)
==9863==    by 0x30D0611A28: _dl_allocate_tls (in /usr/lib64/ld-2.16.so)
==9863==    by 0x30D0E088BC: pthread_create@@GLIBC_2.2.5 (in /usr/lib64/libpthread-2.16.so)
==9863==    by 0x4E88474: virThreadCreate (threads-pthread.c:188)
==9863==    by 0x4E88D17: virThreadPoolNew (threadpool.c:227)
==9863==    by 0x4F7A17B: virNetServerNew (virnetserver.c:379)
==9863==    by 0x40BDF1: main (libvirtd.c:1198)
==9863== 
==9863== 2,208 bytes in 6 blocks are possibly lost in loss record 657 of 683
==9863==    at 0x4A069CF: calloc (vg_replace_malloc.c:593)
==9863==    by 0x30D0611A28: _dl_allocate_tls (in /usr/lib64/ld-2.16.so)
==9863==    by 0x30D0E088BC: pthread_create@@GLIBC_2.2.5 (in /usr/lib64/libpthread-2.16.so)
==9863==    by 0x4E88474: virThreadCreate (threads-pthread.c:188)
==9863==    by 0x4E89003: virThreadPoolSendJob (threadpool.c:330)
==9863==    by 0x4F79BE5: virNetServerDispatchNewMessage (virnetserver.c:248)
==9863==    by 0x4F7B5D1: virNetServerClientDispatchRead (virnetserverclient.c:909)
==9863==    by 0x4F7B8D1: virNetServerClientDispatchEvent (virnetserverclient.c:1095)
==9863==    by 0x4E758A5: virEventPollRunOnce (event_poll.c:485)
==9863==    by 0x4E73F54: virEventRunDefaultImpl (event.c:247)
==9863==    by 0x4F7A99C: virNetServerRun (virnetserver.c:751)
==9863==    by 0x40C2E9: main (libvirtd.c:1338)
==9863== 
==9863== LEAK SUMMARY:
==9863==    definitely lost: 104 bytes in 4 blocks
==9863==    indirectly lost: 0 bytes in 0 blocks
==9863==      possibly lost: 5,936 bytes in 17 blocks
==9863==    still reachable: 708,894 bytes in 7,364 blocks
==9863==         suppressed: 0 bytes in 0 blocks
==9863== Reachable blocks (those to which a pointer was found) are not shown.
==9863== To see them, rerun with: --leak-check=full --show-reachable=yes
==9863== 
==9863== For counts of detected and suppressed errors, rerun with: -v
==9863== ERROR SUMMARY: 54 errors from 11 contexts (suppressed: 2 from 2)


More information about the libvir-list mailing list