[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [xen-unstable test] 19308: regressions - FAIL



On 15/09/13 14:50, Ian Campbell wrote:
> On Sun, 2013-09-15 at 07:09 +0100, xen.org wrote:
>> flight 19308 xen-unstable real [real]
>> http://www.chiark.greenend.org.uk/~xensrcts/logs/19308/
>>
>> Regressions :-(
>>
>> Tests which did not succeed and are blocking,
>> including tests which could not be run:
>>  test-amd64-i386-qemuu-rhel6hvm-intel 11 leak-check/check  fail REGR. vs. 
>> 19208
>>  test-amd64-i386-rhel6hvm-intel 11 leak-check/check        fail REGR. vs. 
>> 19208
>>  test-amd64-i386-qemuu-rhel6hvm-amd 11 leak-check/check    fail REGR. vs. 
>> 19208
>>  test-amd64-i386-qemut-rhel6hvm-amd 11 leak-check/check    fail REGR. vs. 
>> 19208
>>  test-amd64-i386-rhel6hvm-amd 11 leak-check/check          fail REGR. vs. 
>> 19208
> 
> These are due to /var/run/xen-hotplug/block getting leaked
> 
>>  test-amd64-i386-xl-win7-amd64 12 guest-localmigrate/x10   fail REGR. vs. 
>> 19208
>>  test-amd64-amd64-xl-win7-amd64 12 guest-localmigrate/x10  fail REGR. vs. 
>> 19208
>>  test-amd64-amd64-xl-qemut-winxpsp3 12 guest-localmigrate/x10 fail REGR. vs. 
>> 19208
> 
> These are:
>         libxl: error: libxl_device.c:894:device_backend_callback: unable
>         to add device with path /local/domain/0/backend/vbd/9/5632
>         libxl: error: libxl_create.c:935:domcreate_launch_dm: unable to add 
> disk devices
> 
> /var/log/xen/xenhotplug.log contains:
>         xenstore-read: couldn't read path backend/vbd/9/5632/node
> 
> For both of these I'm suspicious of:
> 11a63a1 libxl, hotplug/Linux: default to phy backend for raw format file

Hello,

I've tracked this down to libxl writing a wrong physical-device 
xenstore node when using regular files. When using block devices libxl 
can write the physical-device because it can be fetched without 
requiring the execution of the block script, but with regular files it 
is not true, we must first execute the block script in order to mount 
the regular file into a loop device and then fetch the physical-device 
from the loop device to which the image has been mounted. Following 
patch solves the issue for me.

8<-------------------------------------------------------------------
From e150f00565bfe291809441e73630b243e21a52b0 Mon Sep 17 00:00:00 2001
From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
Date: Mon, 16 Sep 2013 09:39:05 +0200
Subject: [PATCH] libxl: don't write physical-device vbd xenstore node in
 libxl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

libxl used to write the physical-device xenstore node needed by the
phy backend type, because the phy backend type could only be used with
block devices. If libxl allows the backend type phy to be used with
regular files, it can no longer write physical-device because the
hotplug script has to be executed first in order to mount the regular
file into a loop device and then write the physical-device of the loop
device used.

Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx>
---
 tools/libxl/libxl.c |   15 ---------------
 1 files changed, 0 insertions(+), 15 deletions(-)

diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 0879f23..326a378 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -2101,21 +2101,6 @@ static void device_disk_add(libxl__egc *egc, uint32_t 
domid,
                                          libxl__xen_script_dir_path());
                 flexarray_append_pair(back, "script", script);
 
-                /* If the user did not supply a block script then we
-                 * write the physical-device node ourselves.
-                 *
-                 * If the user did supply a script then that script is
-                 * responsible for this since the block device may not
-                 * exist yet.
-                 */
-                if (!disk->script &&
-                    disk->backend_domid == LIBXL_TOOLSTACK_DOMID) {
-                    int major, minor;
-                    libxl__device_physdisk_major_minor(dev, &major, &minor);
-                    flexarray_append_pair(back, "physical-device",
-                            libxl__sprintf(gc, "%x:%x", major, minor));
-                }
-
                 assert(device->backend_kind == LIBXL__DEVICE_KIND_VBD);
                 break;
 
-- 
1.7.7.5 (Apple Git-26)




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.