[libvirt] [PATCH 0/8] Refactor event state handling to fix crash

Alex Jia ajia at redhat.com
Wed Dec 14 03:05:56 UTC 2011

Hi Daniel,
I also met similar issue when I ran libvirt unit test yesterday,
In addition, the case 'read-bufsiz' will be hung forever unless 
typing ctrl+c to sends a SIGINT signal to the process.

PASS: read-bufsiz
FAIL: read-non-seekable
PASS: start
./undefine: line 49: 26790 Segmentation fault      (core dumped) $abs_top_builddir/tools/virsh -q -c test:///default 'dominfo 1; undefine 1; dominfo 1' > out1 2>&1
--- exp 2011-12-13 15:22:59.076222906 +0800


----- Original Message -----
From: "Daniel P. Berrange" <berrange at redhat.com>
To: libvir-list at redhat.com
Sent: Wednesday, December 14, 2011 8:38:17 AM
Subject: [libvirt] [PATCH 0/8] Refactor event state handling to fix crash

When running

     while true ; do date ; ../tools/virsh -q -c test:///default 'shutdown test; undefine test; dominfo test' ; done

we often experiance hangs or crashes or memory corruption in
glibc. The reason is that when the virConnectPtr is free'd this
in turn frees the event state, which in turn unregisters the
event timer. The timer may, however, still fire one last time
and it is possible this occurs after the event state has been

The solution in this series is to only register the timer when
the first callback is added and unregister the timer, when the
last callback is removed.

In doing this patch, I decide to unify more of the event handling
across drivers, and simplify the API usage by drivers, and hide
all the impl details.

libvir-list mailing list
libvir-list at redhat.com

More information about the libvir-list mailing list