On 26.11.2013 16:06, Franky Van Liedekerke wrote:
Hi,
since we're running more than 20 hosts per KVM server, we needed to
update libvirt to at least 1.1.2 for virtlockd to be able to cope with
this (due to an old hardcoded limit that was in there before).
But where 1.1.0 compiles and runs just fine on a fully-patched CentOS
6.4 server, newer version have all kinds of issues:
Every version of libvirt >= 1.1.2 crashes with a segfault on up-to-date
CentOS 6.4 servers (see below).
Also, versions of libvirt >= 1.1.3 need a change in the spec file to be
able to compile:
apparently the %doc entries that are different with 1.1.2 prevent
rpmbuild to succeed on
CentOS servers. Using the %doc lines as per the 1.1.2 spec file results
in a working rpmbuild.
The 1.1.4 version has issues with a symbol not found after compiling and
letting it run:
error : virDriverLoadModule:78 : failed to load module
/usr/lib64/libvirt/connection-driver/libvirt_driver_network.so
/usr/lib64/libvirt/connection-driver/libvirt_driver_network.so:
undefined symbol: virNetworkList
error : virDriverLoadModule:78 : failed to load module
/usr/lib64/libvirt/connection-driver/libvirt_driver_storage.so
/usr/lib64/libvirt/connection-driver/libvirt_driver_storage.so:
undefined symbol: virAsprintf
error : virDriverLoadModule:78 : failed to load module
/usr/lib64/libvirt/connection-driver/libvirt_driver_nodedev.so
/usr/lib64/libvirt/connection-driver/libvirt_driver_nodedev.so:
undefined symbol: virNodeDeviceList
31677: error : virDriverLoadModule:78 : failed to load module
/usr/lib64/libvirt/connection-driver/libvirt_driver_secret.so
/usr/lib64/libvirt/connection-driver/libvirt_driver_secret.so: undefined
symbol: virAsprintf
31677: error : virDriverLoadModule:78 : failed to load module
/usr/lib64/libvirt/connection-driver/libvirt_driver_nwfilter.so
/usr/lib64/libvirt/connection-driver/libvirt_driver_nwfilter.so:
undefined symbol: virAsprintf
31677: error : virDriverLoadModule:78 : failed to load module
/usr/lib64/libvirt/connection-driver/libvirt_driver_interface.so
/usr/lib64/libvirt/connection-driver/libvirt_driver_interface.so:
undefined symbol: virAsprintf
31677: error : virDriverLoadModule:78 : failed to load module
/usr/lib64/libvirt/connection-driver/libvirt_driver_qemu.so
/usr/lib64/libvirt/connection-driver/libvirt_driver_qemu.so: undefined
symbol: networkAllocateActualDevice
31677: error : virDriverLoadModule:78 : failed to load module
/usr/lib64/libvirt/connection-driver/libvirt_driver_lxc.so
/usr/lib64/libvirt/connection-driver/libvirt_driver_lxc.so: undefined
symbol: networkAllocateActualDevice
And every time libvirt segfaults, there's this in the logs:
debug : virJSONValueToString:1133 :
result={"id":"libvirt-6","error":{"class":"CommandNotFound","desc":"The
command qom-list has not been
found","data":{"name":"qom-list"}}}
debug : virEventPollRunOnce:627 : EVENT_POLL_RUN: nhandles=32 timeout=1684
9479: debug : qemuMonitorJSONCheckError:341 : unable to execute QEMU
command
{"execute":"qom-list","arguments":{"path":"/"},"id":"libvirt-6"}:
{"id":"libvirt-6","error":{"class":"CommandNotFound","desc":"The
command
qom-list has not been
found","data":{"name":"qom-list"}}}
9479: error : qemuMonitorJSONCheckError:352 : internal error: unable to
execute QEMU command 'qom-list': The command qom-list has not been found
Any insights on any of these issues?
As Eric said it should all be fixed now. However I'm not sure about the
last one - it wasn't SIGSEGV I was seeing when writing the patch, was
it? Can't recall right now, honestly. Anyway, if you're seeing a
SIGSEGV-ing daemon, is it possible for you to get a stacktrace and share
it with us? Maybe we have more bugs than that one I've fixed :)
Moreover, if you're running libvirt under production you almost
certainly don't want run upstream libvirt there but rather backport the
important patches instead. In this case - backport 9f5b4b1f.
Michal