|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH,v7]: xl: randomly generate UUID's
This seems to have exposed a bug in the userdata scheme which breaks
localhost live migration. Attempted fix is below. I'm a little bit
concerned that it might expose leaks or other occasions where we loose
track of userdata but I think it is correct.
Ian.
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1283766752 -3600
# Node ID 75449758ea76cc3fd75a906ba827c51d10e62428
# Parent a4b74331bed1aa2ebec68af2a2d9306d7d41986f
libxl: include domain id in userdata path.
The userdata is specific to a particular incarnation of a domain and
the patch is therefor required to be unique to each incarnation. If
the user has explicitly configured a UUID in their domain
configuration then the path is no longer unique since
22124:22366e13f76d "xl: randomly generate UUIDs" which (correctly)
caused the uuid domain configuration option to be obeyed.
If userdata is not unique to each incarnation of a domain then
localhost live migration is broken because the target is created (and
writes its userdata) before the sender destroys the domain (and
deletes its userdata).
Strictly speaking I think the UUID is unnecessary but it is perhaps
helpful to people looking in the userdata directory, for debugging
etc.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
diff -r a4b74331bed1 -r 75449758ea76 tools/libxl/libxl_dom.c
--- a/tools/libxl/libxl_dom.c Mon Sep 06 10:47:31 2010 +0100
+++ b/tools/libxl/libxl_dom.c Mon Sep 06 10:52:32 2010 +0100
@@ -466,8 +466,8 @@ static const char *userdata_path(libxl_g
uuid_string = libxl_sprintf(gc, LIBXL_UUID_FMT,
LIBXL_UUID_BYTES(info.uuid));
path = libxl_sprintf(gc, "/var/lib/xen/"
- "userdata-%s.%s.%s",
- wh, uuid_string, userdata_userid);
+ "userdata-%s.%u.%s.%s",
+ wh, domid, uuid_string, userdata_userid);
if (!path)
XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "unable to allocate for"
" userdata path");
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|