I am getting SIGABRT and SIGSEGV in libvirtd when trying to catch blockJob
events.
When running under valgrind I get the following:
==19819== Thread 1:
==19819== Invalid free() / delete / delete[]
==19819== at 0x4C282ED: free (vg_replace_malloc.c:366)
==19819== by 0x4E7B48: virFree (memory.c:310)
==19819== by 0x7669C32: virDomainEventFree (domain_event.c:510)
==19819== by 0x766AFE2: virDomainEventQueueDispatch (domain_event.c:1154)
==19819== by 0x766B19D: virDomainEventStateFlush (domain_event.c:1195)
==19819== by 0x483E15: qemuDomainEventFlush (qemu_domain.c:134)
==19819== by 0x507535: virEventPollRunOnce (event_poll.c:421)
==19819== by 0x4E6D44: virEventRunDefaultImpl (event.c:247)
==19819== by 0x44813C: virNetServerRun (virnetserver.c:701)
==19819== by 0x41FECE: main (libvirtd.c:1564)
==19819== Address 0x131b0a30 is 0 bytes inside a block of size 15 free'd
==19819== at 0x4C282ED: free (vg_replace_malloc.c:366)
==19819== by 0x7FB006C: xdr_string (xdr.c:722)
==19819== by 0x43A5FD: xdr_remote_nonnull_string (remote_protocol.c:30)
==19819== by 0x442E2B: xdr_remote_domain_event_block_job_msg
(remote_protocol.c:4000)
==19819== by 0x7FAF6C4: xdr_free (xdr.c:72)
==19819== by 0x431BDA: remoteRelayDomainEventBlockJob (remote.c:363)
==19819== by 0x766ADBA: virDomainEventDispatchDefaultFunc
(domain_event.c:1079)
==19819== by 0x482C67: qemuDomainEventDispatchFunc (qemu_domain.c:125)
==19819== by 0x766AF3D: virDomainEventDispatch (domain_event.c:1136)
==19819== by 0x766AFD1: virDomainEventQueueDispatch (domain_event.c:1153)
==19819== by 0x766B19D: virDomainEventStateFlush (domain_event.c:1195)
==19819== by 0x483E15: qemuDomainEventFlush (qemu_domain.c:134)
==19819==
On a different recreate under gdb I get:
Program received signal SIGSEGV, Segmentation fault.
malloc_consolidate (av=0x7f4220000020) at malloc.c:5155
5155 malloc.c: No such file or directory.
in malloc.c
(gdb) bt
#0 malloc_consolidate (av=0x7f4220000020) at malloc.c:5155
#1 0x00007f422ef09528 in _int_free (av=0x7f4220000020, p=0x7f4220080f50)
at malloc.c:5034
#2 0x00007f422ef0d8e3 in __libc_free (mem=<value optimized out>)
at malloc.c:3738
#3 0x00000000004e7b29 in virFree (ptrptr=0x7fff5f07a458) at util/memory.c:310
#4 0x000000000044a1cf in virNetMessageFree (msg=0x7f4220080f60)
at rpc/virnetmessage.c:69
#5 0x0000000000445d4a in virNetServerClientDispatchWrite (
sock=<value optimized out>, events=2, opaque=0x7f4220000b90)
at rpc/virnetserverclient.c:902
#6 virNetServerClientDispatchEvent (sock=<value optimized out>, events=2,
opaque=0x7f4220000b90) at rpc/virnetserverclient.c:956
#7 0x0000000000507787 in virEventPollDispatchHandles ()
at util/event_poll.c:470
#8 virEventPollRunOnce () at util/event_poll.c:611
#9 0x00000000004e6d25 in virEventRunDefaultImpl () at util/event.c:247
#10 0x000000000044811d in virNetServerRun (srv=0x1dfec10)
at rpc/virnetserver.c:701
#11 0x000000000041feaf in main (argc=<value optimized out>,
argv=<value optimized out>) at libvirtd.c:1564
Looks like a double free somewhere. Commit:
a91d3115b5c460af8a6f70d2092d0bc5ef9b723e seems to have surfaced the problem.
On Thu, Sep 15, 2011 at 12:11:13AM +0800, Daniel Veillard wrote:
I have made a second release candidate tarball (and associated rpms) at
ftp://libvirt.org/libvirt/libvirt-0.9.5-rc2.tar.gz
and tagged in git for it.
I'm afraid we still didn't fix the MacOS-X / BSD problem , there is
also some new code compared to rc1, so it's likely I will do an
rc3 on Friday, and push the final release only beginning of last week.
Please give it a try, thanks !
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
--
Adam Litke <agl(a)us.ibm.com>
IBM Linux Technology Center