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

[Xen-bugs] [Bug 1286] New: guest can not boot up when appending an image as the second disk



http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1286

           Summary: guest can not boot up when appending an image as the
                    second disk
           Product: Xen
           Version: unstable
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: blocker
          Priority: P1
         Component: Tools
        AssignedTo: xen-bugs@xxxxxxxxxxxxxxxxxxx
        ReportedBy: haicheng.li@xxxxxxxxx


Environment:
------------
Service OS (ia32/ia32e/IA64): ia32 ia32e
Guest OS (ia32/ia32e/IA64): ia32 ia32e
Change Set: 17909
Hardware: Stoakley/Clovertown



Bug detailed description:
--------------------------
on stoakley mechine, when we create a guest with two disks, i.e.,
in configure file we set 
disk = [ 'file:/imagepath/first.img,hda,w', 'file:/iamgepath/second.img,hdb,w',
',hdc:cdrom,r',] 
guest can not boot up, xm prints "Error: unpack non-sequence"

[root@vt-dp6 root]$ xm cr xmexample.hvm
Using config file "./xmexample.hvm".
Error: unpack non-sequence
[root@vt-dp6 root]$


Reproduce steps:
----------------
1) prepare two images
2) prepare one guest config with disk = [ 'file:/imagepath/first.img,hda,w',
'file:/iamgepath/second.img,hdb,w', ',hdc:cdrom,r',] 
3) create guest

Current result:
----------------


Expected result:
----------------


Basic root-causing log:
----------------------
xend.log:
[2008-06-30 15:47:32 6305] DEBUG (XendDomainInfo:2312) XendDomainInfo.destroy:
domid=None
[2008-06-30 15:47:32 6305] DEBUG (XendDomainInfo:2329)
XendDomainInfo.destroyDomain(None)
[2008-06-30 15:47:32 6305] DEBUG (XendDomainInfo:1878) No device model
[2008-06-30 15:47:32 6305] DEBUG (XendDomainInfo:1880) Releasing devices
[2008-06-30 15:47:32 6305] ERROR (xmlrpclib2:178) Internal error handling
xend.domain.create
Traceback (most recent call last):
  File "/usr/lib64/python/xen/util/xmlrpclib2.py", line 131, in
_marshaled_dispatch
    response = self._dispatch(method, params)
  File "/usr/lib64/python2.4/SimpleXMLRPCServer.py", line 406, in _dispatch
    return func(*params)
  File "/usr/lib64/python/xen/xend/server/XMLRPCServer.py", line 72, in
domain_create
    info = XendDomain.instance().domain_create(config)
  File "/usr/lib64/python/xen/xend/XendDomain.py", line 963, in domain_create
    dominfo = XendDomainInfo.create(config)
  File "/usr/lib64/python/xen/xend/XendDomainInfo.py", line 88, in create
    vm.start()
  File "/usr/lib64/python/xen/xend/XendDomainInfo.py", line 421, in start
    XendTask.log_progress(31, 60, self._initDomain)
  File "/usr/lib64/python/xen/xend/XendTask.py", line 209, in log_progress
    retval = func(*args, **kwds)
  File "/usr/lib64/python/xen/xend/XendDomainInfo.py", line 2182, in
_initDomain
    self._createDevices()
  File "/usr/lib64/python/xen/xend/XendDomainInfo.py", line 1857, in
_createDevices
    devid = self._createDevice(devclass, config)
  File "/usr/lib64/python/xen/xend/XendDomainInfo.py", line 1826, in
_createDevice
    return self.getDeviceController(deviceClass).createDevice(devConfig)
  File "/usr/lib64/python/xen/xend/server/DevController.py", line 90, in
createDevice
    (devid, back, front) = self.getDeviceDetails(config)
  File "/usr/lib64/python/xen/xend/server/blkif.py", line 84, in
getDeviceDetails
    (device_path, devid) = blkif.blkdev_name_to_number(dev)
TypeError: unpack non-sequence



------- Comment #2 From Xu, Dongxiao 2008-06-30 17:06:49 [reply] ------- 
I have sent out a patch, it should fix this issue.                

Fix the return value of blkdev_name_to_number().
  - Function blkdev_name_to_number() should return both devname and devnum, 
otherwise it may cause "unpack non-sequence" error.

Signed-off-by: Dongxiao Xu <dongxiao.xu@xxxxxxxxx>

diff -r 0972fc23b504 tools/python/xen/util/blkif.py
--- a/tools/python/xen/util/blkif.py    Sat Jun 28 16:29:00 2008 +0100
+++ b/tools/python/xen/util/blkif.py    Mon Jun 30 17:06:51 2008 +0800
@@ -20,7 +20,7 @@ def blkdev_name_to_number(name):
     devnum = None

     try:
-        return os.stat(n).st_rdev
+        return (devname, os.stat(n).st_rdev)
     except Exception, ex:
         pass


-- 
Configure bugmail: 
http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

_______________________________________________
Xen-bugs mailing list
Xen-bugs@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-bugs


 


Rackspace

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