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

Re: [Xen-devel] [PATCH] fix error handler index in xm



CL> I've reverted this check-in because with the change applied, the
CL> error messages are incorrect: 

Ok, so the problem is rooted in the way the args list is manipulated
in the subcommand handlers.  As it stands now (without the patch),
some commands give a good error message, while others dump a stack
trace if the domain doesn't exist:

  # xm destroy foo
  Error: Domain 'foo' not found when running 'xm destroy'
  # xm domid foo
  Traceback (most recent call last):
    File "/usr/sbin/xm", line 10, in ?
      main.main(sys.argv)
    File "/usr/lib/python/xen/xm/main.py", line 671, in main
      handle_xend_error(argv[1], args[1], ex)
  IndexError: list index out of range

This is because destroy adds "bogus" into the args list at index 0,
but domid does not.  I've attached a new patch that checks for this
condition, and removes the "bogus" entry from the list if the
subcommand added it.  This makes the call to handle_xend_error() work
in both situations:

  # xm destroy foo
  Error: Domain 'foo' not found when running 'xm destroy'
  # xm domid foo
  Error: Domain 'foo' not found when running 'xm domid'

Is that an acceptable solution for now?  Perhaps a cleanup of the
inconsistent subcommand handler behavior is in order.  I can do that
when I start work on the remaining interface changes.

diff -r b74c15e4dd4f tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py       Wed Aug 24 16:15:42 2005
+++ b/tools/python/xen/xm/main.py       Wed Aug 24 09:36:32 2005
@@ -665,8 +665,10 @@
             err("Most commands need root access.  Please try again as root")
             sys.exit(1)
         except XendError, ex:
+            if args[0] == "bogus":
+                args.remove("bogus")
             if len(args) > 0:
-                handle_xend_error(argv[1], args[1], ex)
+                handle_xend_error(argv[1], args[0], ex)
             else:
                 print "Unexpected error:", sys.exc_info()[0]
                 print
-- 
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms@xxxxxxxxxx
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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