This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] [PATCH 1 of 4] libxl: include domain id in userdata path

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 1 of 4] libxl: include domain id in userdata path
From: Ian Campbell <ian.campbell@xxxxxxxxxx>
Date: Mon, 06 Sep 2010 11:03:13 +0100
Cc: Brendan Cully <brendan@xxxxxxxxx>
Delivery-date: Mon, 06 Sep 2010 03:09:02 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <patchbomb.1283767392@xxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1283766891 -3600
# Node ID cbba0599e0a1728e524ba640bdcea7d4af05ddd5
# Parent  7b69ef39c61bc056aa0c9751e523ce6d9d3fc47f
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

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

diff -r 7b69ef39c61b -r cbba0599e0a1 tools/libxl/libxl_dom.c
--- a/tools/libxl/libxl_dom.c   Mon Sep 06 10:54:51 2010 +0100
+++ b/tools/libxl/libxl_dom.c   Mon Sep 06 10:54:51 2010 +0100
@@ -466,8 +466,8 @@ static const char *userdata_path(libxl_g
     uuid_string = libxl_sprintf(gc, LIBXL_UUID_FMT, 
     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