[libvirt] [PATCH] qemu: Qemu process unexpectedly killed in repeated reboot
Michal Privoznik
mprivozn at redhat.com
Fri Nov 30 14:23:31 UTC 2018
On 11/30/18 9:53 AM, Wang King wrote:
> The issue occurs when I make repeated calls to virDomainReboot with
> VIR_DOMAIN_REBOOT_DEFAULT flag. In the first call to reboot domain,
> the qemu driver chose ACPI path, and set priv->fakeReboot to true.
> Then in a second call, qemu driver chose agent to reboot which set
> fakeReboot to false. But because the guest already responded to ACPI
> shut down, libvirtd daemon will process a SHUTDOWN event in
> qemuProcessShutdownOrReboot and checks priv->fakeReboot. Since the
> fakeReboot flag is now false, qemu process is unexpectedly killed.
>
This sounds fishy. Looking at the code libvirt decides whether to use
agent or ACPI based on:
a) flags (but since you're passing 0 this is out of the picture),
b) guest agent being available,
This means that agent must have connected between two virDomainReboot()
calls. Otherwise libvirt would make the same choice.
> I have no idea how to fix it.
Well, the qemuDomainSetFakeReboot(false) call was added in b0c144c5792
which points to:
https://www.redhat.com/archives/libvir-list/2015-April/msg00732.html
I think the patch proposed there is actually right and not the one that
was merged.
Michal
More information about the libvir-list
mailing list