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] Re: exception looking up device number f,or hda

To: Arun Sharma <arun.sharma@xxxxxxxxx>
Subject: [Xen-devel] Re: exception looking up device number f,or hda
From: Mike Wray <mike.wray@xxxxxx>
Date: Mon, 08 Aug 2005 09:08:51 +0100
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 08 Aug 2005 08:21:19 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <42F3BF2C.70403@xxxxxxxxx>
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <42F3BF2C.70403@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050317)
Arun Sharma wrote:
Hi Mike,

I have the following line in my config file:

disk = [ 'file:/var/images/min-el3-i386.img,hda,w' ]

and my host doesn't have a /dev/hda (it has a SATA disk which shows up as /dev/sda).

But I would like the guest to see a /dev/hda. Sounds reasonable?

Now, when I try to create this domain, I get:

[2005-08-05 14:40:53 xend] DEBUG (blkif:24) exception looking up device number for hda: [Errno 2] No such file or directory: '/dev/hda'
2005-08-05 14:40:53 xend] DEBUG (blkif:449) Destroying blkif domain=1
[2005-08-05 14:40:53 xend] DEBUG (blkif:337) Destroying vbd domain=1 id=0

The code in util/blkif.py that tries to convert name to device number doesn't seem to be new, but I don't know why it started showing up suddenly.

I worked around by manually creating /dev/hda, but I don't think it's reasonable to expect that host's /dev contains entries for all guest devices.

No, and the blkdev_name_to_number() function should convert names like /dev/hda
without the device existing. This code should be trapping the error:

        return os.stat(n).st_rdev
    except Exception, ex:
        log.debug("exception looking up device number for %s: %s", name, ex)

The code then uses regexps to analyse the device name (though you will see
the debug message in the log).

What xen version are you using?

Also, the effect of having a bad "disk=" line in xmdefconfig (such as pointing to a non-existent file) results in a xend crash. We probably need to add a few checks at the python level so that the user sees a more useful stack trace.

All errors during domain construction are intended to be trapped and returned
to the caller - so maybe something got broken.
Did you see anything in the xend log?
Might be worth causing the error using xend with tracing on (xend trace_start)
and having a look at the trace (/var/log/xend.trace).


Xen-devel mailing list