Fix block-detach of non-existent device
PATCH 1/1 Fix block-detach of non-existent device
The attached patch prevents Xend from blowing up when a user tries to detach a non-existent block device.
I also added a check in xm to make sure that a numeric id is supplied, instead of a device name.
This will cause xm-test 04_block-destroy_nonattached_neg to pass.
Signed-off-by Dan Smith <[email protected]>
tools/python/xen/xend/server/DevController.py +6 -2
@@ -78,8 +78,12 @@ backpath = xstransact.Read(frontpath, "backend") xstransact.Remove(frontpath) - xstransact.Remove(backpath) - + + if backpath: + xstransact.Remove(backpath) + else: + raise VmError("Device not connected") + def configurations(self): return map(lambda x: self.configuration(int(x)),
tools/python/xen/xm/main.py +9 -1
@@ -165,6 +165,9 @@ error = str(ex) if error == "Not found" and dom != None: err("Domain '%s' not found when running 'xm %s'" % (dom, cmd)) + sys.exit(1) + elif error == "Exception: Device not connected": + err("Device not connected") sys.exit(1) else: raise ex
@@ -532,7 +535,12 @@ arg_check(args,2,"block-detach") dom = args[0] - dev = args[1] + + try: + dev = int(args[1]) + except ValueError, e: + err("Invalid device id: %s" % args[1]) + sys.exit(1) from xen.xend.XendClient import server server.xend_domain_device_destroy(dom, 'vbd', dev)
Signature · 5 lines
-- Dan Smith IBM Linux Technology Center Open Hypervisor Team email: [email protected]
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel
Quoted 9 lines · Dan Smith
The attached patch prevents Xend from blowing up when a user tries to detach a non-existent block device.
I also added a check in xm to make sure that a numeric id is supplied, instead of a device name.
This will cause xm-test 04_block-destroy_nonattached_neg to pass.
Signed-off-by Dan Smith <[email protected]>
Thanks Dan. I've applied that.
Ewan.