mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
qemu: Narrow the shutdown reconnection failure reason window
The current qemuProcessReconnect logic paints a broad brush determining that the shutdown reason must be crashed if it was determined that the domain was started with -no-shutdown; however, there's many other ways to get to the error label, so let's narrow our reasoning window for using VIR_DOMAIN_SHUTOFF_CRASHED to the period where we essentially know we've tried to create to the monitor and before we were successful in opening the connection. Failures that occur outside that window would thus be considered as VIR_DOMAIN_SHUTOFF_UNKNOWN, at least for now. Signed-off-by: John Ferlan <jferlan@redhat.com> ACKed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
296e05b54b
commit
8f0f8425d7
@ -7757,6 +7757,7 @@ qemuProcessReconnect(void *opaque)
|
||||
bool jobStarted = false;
|
||||
virCapsPtr caps = NULL;
|
||||
bool retry = true;
|
||||
bool tryMonReconn = false;
|
||||
|
||||
VIR_FREE(data);
|
||||
|
||||
@ -7797,6 +7798,8 @@ qemuProcessReconnect(void *opaque)
|
||||
VIR_DEBUG("Reconnect monitor to def=%p name='%s' retry=%d",
|
||||
obj, obj->def->name, retry);
|
||||
|
||||
tryMonReconn = true;
|
||||
|
||||
/* XXX check PID liveliness & EXE path */
|
||||
if (qemuConnectMonitor(driver, obj, QEMU_ASYNC_JOB_NONE, retry, NULL) < 0)
|
||||
goto error;
|
||||
@ -7993,7 +7996,8 @@ qemuProcessReconnect(void *opaque)
|
||||
* If we cannot get to the monitor when the QEMU command
|
||||
* line used -no-shutdown, then we can safely say that the
|
||||
* domain crashed; otherwise, we don't really know. */
|
||||
if (qemuDomainIsUsingNoShutdown(priv))
|
||||
if (!priv->mon && tryMonReconn &&
|
||||
qemuDomainIsUsingNoShutdown(priv))
|
||||
state = VIR_DOMAIN_SHUTOFF_CRASHED;
|
||||
else
|
||||
state = VIR_DOMAIN_SHUTOFF_UNKNOWN;
|
||||
|
Loading…
Reference in New Issue
Block a user