Description of problem: If the qemu binary is upgraded (for example, via yum update), the new binary may have different capabilities than older in-memory qemu still running a domain. This can cause crashes if libvirtd is then restarted and re-parses qemu -help output, as libvirt may end up issuing a monitor command appropriate to the new binary but unknown by the target binary. Version-Release number of selected component (if applicable): libvirt 0.8.5 and earlier, and any change in qemu version How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: See this list post for the suggested fix: https://www.redhat.com/archives/libvir-list/2010-October/msg00993.html Basically, libvirt needs to cache the qemu capabilities in effect at the time a domain is started, rather than re-querying a (possibly-changed) qemu binary later on.
commit 43c01d38384b8fd1469f4c23dfdd407593c639f8 Author: Daniel P. Berrange <berrange> Date: Wed May 4 12:55:38 2011 +0100 Persist qemu capabilities in the domain status file To cope with the QEMU binary being changed while a VM is running, it is neccessary to persist the original qemu capabilities at the time the VM is booted. * src/qemu/qemu_capabilities.c, src/qemu/qemu_capabilities.h: Add an enum for a string rep of every capability * src/qemu/qemu_domain.c, src/qemu/qemu_domain.h: Support for storing capabilities in the domain status XML * src/qemu/qemu_process.c: Populate & free QEMU capabilities at domain startup