|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] libxl: Prevent qemu closing QMP socket on shutdown before libxl is done with it.
commit 9ba80a722b193c912432d544338f8daf9a846cd7
Author: Sander Eikelenboom <linux@xxxxxxxxxxxxxx>
AuthorDate: Thu Jan 22 18:21:40 2015 +0100
Commit: Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Tue Jan 27 16:45:29 2015 +0000
libxl: Prevent qemu closing QMP socket on shutdown before libxl is done
with it.
At present on shutdown when using pci-passthrough with qemu-xen, qemu
closes the QMP socket before libxl is done with it causing these
errors to be logged by libxl:
Waiting for domain test (domid 1) to die [pid 11568]
Domain 1 has shut down, reason code 0 0x0
Action for shutdown reason code 0 is destroy
Domain 1 needs to be cleaned up: destroying the domain
libxl: error: libxl_qmp.c:443:qmp_next: Socket read error: Connection
reset by peer
libxl: error: libxl_qmp.c:701:libxl__qmp_initialize: Failed to connect
to QMP
libxl: error: libxl_qmp.c:686:libxl__qmp_initialize: Connection error:
Connection refused
libxl: error: libxl_dm.c:1588:kill_device_model: Device Model already
exited
Done. Exiting now
Prevent this by using the qemu '-no-shutdown' parameter which is
described as doing:
"Donâ??t exit QEMU on guest shutdown, but instead only stop the
emulation.
This allows for instance switching to monitor to commit changes to the
disk image."
So Qemu will stop emulating, but keeps the QMP socket open and waits
for libxl to kill the qemu process when it is done, preventing the
race and resulting in this to be logged by libxl:
Waiting for domain test (domid 1) to die [pid 10859]
Domain 1 has shut down, reason code 0 0x0
Action for shutdown reason code 0 is destroy
Domain 1 needs to be cleaned up: destroying the domain
Done. Exiting now
Signed-off-by: Sander Eikelenboom <linux@xxxxxxxxxxxxxx>
Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
---
tools/libxl/libxl_dm.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
index d8d6f0c..73de5c3 100644
--- a/tools/libxl/libxl_dm.c
+++ b/tools/libxl/libxl_dm.c
@@ -443,6 +443,7 @@ static char ** libxl__build_device_model_args_new(libxl__gc
*gc,
"path=%s/qmp-libxl-%d,server,nowait",
libxl__run_dir_path(), guest_domid));
+ flexarray_append(dm_args, "-no-shutdown");
flexarray_append(dm_args, "-mon");
flexarray_append(dm_args, "chardev=libxl-cmd,mode=control");
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |