This upstream explains what I discovered in previous comments:
commit e6bcbcd32c70ae394e7b6a530012fe8b07a59b5d
Author: Eric Blake <email address hidden>
Date: Tue May 27 17:07:08 2014 -0600
qemu: reject rather than hang on blockcommit of active layer
qemu 2.0 added the ability to commit the active layer, but slightly
differently than what libvirt had been anticipating in its
implementation of the virDomainBlockCommit call. As a result, if
you attempt to do a 'virsh blockcommit $dom vda', qemu gets into a
state where it is waiting on libvirt to end the job, while libvirt
is waiting on qemu to end the job, and the guest is effectively
hung with regards to further commands for that block device.
I have patches coming down the pipeline that will add full support
for blockcommit of the active layer when coupled with qemu 2.0 or
later; but they depend on Peter's improvements to block job handling
and form enough of a new feature that they are not ready for
inclusion in the 1.2.5 release. So for now, just reject the
attempt, rather than letting the user get stuck. This is no worse
than the behavior of qemu 1.7 rejecting the job.
* src/qemu/qemu_driver.c (qemuDomainBlockCommit): Reject active
commit.
Signed-off-by: Eric Blake <email address hidden>
So basically Trusty libvirt shouldn't be supporting this feature as said in the beginning of the case. But this commit rejects the command saying its unsupported and has to be included in Trusty's QEMU.
This upstream explains what I discovered in previous comments:
commit e6bcbcd32c70ae3 94e7b6a530012fe 8b07a59b5d
Author: Eric Blake <email address hidden>
Date: Tue May 27 17:07:08 2014 -0600
qemu: reject rather than hang on blockcommit of active layer
qemu 2.0 added the ability to commit the active layer, but slightly ommit call. As a result, if
differently than what libvirt had been anticipating in its
implementation of the virDomainBlockC
you attempt to do a 'virsh blockcommit $dom vda', qemu gets into a
state where it is waiting on libvirt to end the job, while libvirt
is waiting on qemu to end the job, and the guest is effectively
hung with regards to further commands for that block device.
I have patches coming down the pipeline that will add full support
for blockcommit of the active layer when coupled with qemu 2.0 or
later; but they depend on Peter's improvements to block job handling
and form enough of a new feature that they are not ready for
inclusion in the 1.2.5 release. So for now, just reject the
attempt, rather than letting the user get stuck. This is no worse
than the behavior of qemu 1.7 rejecting the job.
* src/qemu/ qemu_driver. c (qemuDomainBloc kCommit) : Reject active
commit.
Signed-off-by: Eric Blake <email address hidden>
So basically Trusty libvirt shouldn't be supporting this feature as said in the beginning of the case. But this commit rejects the command saying its unsupported and has to be included in Trusty's QEMU.