On 09/20/2011 01:10 PM, Jiri Denemark wrote:
On Tue, Sep 20, 2011 at 19:39:15 +0200, Jiri Denemark wrote:
> The commit that prevents disk corruption on domain shutdown
> (96fc4784177ecb70357518fa863442455e45ad0e) causes regression with QEMU
> 0.14.* and 0.15.* because of a regression bug in QEMU that was fixed
> only recently in QEMU git. With affected QEMU binaries, domains cannot
> be shutdown properly and stay in a paused state. This patch tries to
> avoid this by sending SIGKILL to 0.1[45].* QEMU processes. Though we
> wait a bit more between sending SIGTERM and SIGKILL to reduce the
> possibility of virtual disk corruption.
An alternative solution would be to break reboot on affected QEMUs instead of
trying to live with possible data corruption as if libvirt 0.9.[34] is used.
That is, virDomainReboot would report unsupported operation because current
emulator binary is not able to support it without causing possible data
corruption during shutdown.
That makes sense - that is, we don't use -no-shutdown, so
virDomainReboot reports failure, but then virDomainDestroy doesn't
tickle the bug and can unconditionally work as it has always done.
I like that idea a bit better, especially since it sounds like upstream
qemu is reluctant to modify -help text to help us out.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org