[libvirt] newer libvirt version issues

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? Franky

On 11/26/2013 08:06 AM, Franky Van Liedekerke wrote:
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.
Should be fixed in caaeb69.
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
Not sure what you're seeing here.
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
Should be fixed in 730af8f.
Any insights on any of these issues?
Please try again with 1.2.0-rc1 (contains both fixes mentioned above, and several others), so we can determine whether we need more patches prior to actually releasing 1.2.0. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On Tue, 26 Nov 2013 08:22:56 -0700 Eric Blake <eblake@redhat.com> wrote:
On 11/26/2013 08:06 AM, Franky Van Liedekerke wrote:
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.
Should be fixed in caaeb69.
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
Not sure what you're seeing here.
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
Should be fixed in 730af8f.
Any insights on any of these issues?
Please try again with 1.2.0-rc1 (contains both fixes mentioned above, and several others), so we can determine whether we need more patches prior to actually releasing 1.2.0.
I just got around to testing this last week, and version 1.2.0 indeed solves all mentioned issues. Thanks guys, and enjoy the holidays! Franky

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
participants (3)
-
Eric Blake
-
Franky Van Liedekerke
-
Michal Privoznik