mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
qemu_shim: Don't hang if failed to start domain
The qemu shim spawns a separate thread in which the event loop is ran. The virEventRunDefaultImpl() call is wrapped in a while() loop, just like it should. There are few lines of code around which try to ensure that domain is destroyed (when quitting) and that the last round of event loop is ran after the virDomainDestroy() call. Only after that the loop is quit from and the thread quits. However, if domain creation fails, there is no @dom to call destroy over, the @quit flag is never set and while() never exits. Set the flag regardless of @dom pointer. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1920337 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
This commit is contained in:
parent
ba2593bddc
commit
52a937d8a2
@ -45,9 +45,9 @@ qemuShimEventLoop(void *opaque G_GNUC_UNUSED)
|
||||
while (!quit) {
|
||||
g_mutex_lock(&eventLock);
|
||||
if (eventQuitFlag && !eventPreventQuitFlag) {
|
||||
quit = true;
|
||||
if (dom) {
|
||||
virDomainDestroy(dom);
|
||||
quit = true;
|
||||
}
|
||||
}
|
||||
g_mutex_unlock(&eventLock);
|
||||
|
Loading…
x
Reference in New Issue
Block a user