Hi,
Xm list and xm vcpu-list show wrong DomID(name).
Under this situation,
# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 512 1 r----- 1064.6
test1 13 64 1 r----- 83879.7
# xm list 1 13
Error: Domain ''1'' not found when running ''xm
list''
# xm list 13 15
Error: Domain ''13'' not found when running ''xm
list''
An error message shows always the first one of given DomIDs,
when xm list is given unexistant DomIDs.
This is serious, when many domains are running.
Vcpu-list is same. In addition, it shows an unnecessary header.
This is unnatural.
# xm vcpu-list 13 15
Name ID VCPU CPU State Time(s) CPU
Affinity
Error: Domain ''13'' not found when running ''xm
vcpu-list''
cause:
In tools/python/xen/xm/main.py, dom is always the first parameter of
non_option
def handle_xend_error(cmd, args, ex):
non_option = filter(lambda x: x[0] != ''-'', args)
dom = len(non_option) > 0 and non_option[0] or None
<---------look
error = str(ex)
if error == "Not found" and dom != None:
err("Domain ''%s'' not found when running
''xm %s''" % (dom, cmd))
else:
err(error)
Thanks.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
On Thu, Dec 22, 2005 at 06:31:39PM +0900, Yoshinori Katase wrote:> Hi, > > Xm list and xm vcpu-list show wrong DomID(name). > Under this situation, > # xm list > Name ID Mem(MiB) VCPUs State Time(s) > Domain-0 0 512 1 r----- 1064.6 > test1 13 64 1 r----- 83879.7 > > # xm list 1 13 > Error: Domain ''1'' not found when running ''xm list'' > # xm list 13 15 > Error: Domain ''13'' not found when running ''xm list'' > > An error message shows always the first one of given DomIDs, > when xm list is given unexistant DomIDs. > This is serious, when many domains are running.This is a problem with the exception reporting from Xend (the daemon) to xm (the client tool). The exception does not carry enough information to allow xm to diagnose the problem correctly. Please feel free to fix this (no-one else is working on it at the moment). Ewan. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Yoshinori Katase
2006-Jan-06 09:58 UTC
[Xen-devel] Who gives exeption routine in main.py ''Not found'' in ex ?
Hi, Ewan.
I investigated at your suggestion.
When un-existant domain name(id)s is given xm,
exeption routine in main.py is carried ''Not found'' in ex.
932: except xen.xend.XendError.XendError, ex:
933: if len(args) > 0:
934: handle_xend_error(argv[1], args, ex)
But in xend.trace, XendEroor shows error DomID.
| 43 if not dom:
| 44 raise XendError(''No such domain '' +
str(x))
| |> XendError.py:__init__
| | 21 self.value = value
| |< XendError.py:__init__
| ! Exception:
Traceback (most recent call last):
File "/usr/lib/python/xen/xend/server/SrvDomainDir.py", line 44, in
domain
raise XendError(''No such domain '' + str(x))
XendError: No such domain 100
| ! Exception:
Traceback (most recent call last):
File "/usr/lib/python/xen/xend/server/SrvDomainDir.py", line 52, in
get
return self.domain(x)
File "/usr/lib/python/xen/xend/server/SrvDomainDir.py", line 44, in
domain
raise XendError(''No such domain '' + str(x))
XendError: No such domain 100
| |> XendError.py:__str__
| | 24 return self.value
| |< XendError.py:__str__
Who changes xend''s error massage ?
Best Regards,
Yoshinori Katase
-----Original Message-----
From: Ewan Mellor [mailto:ewan@xensource.com]
Sent: Friday, December 23, 2005 12:40 AM
To: Yoshinori Katase
Cc: xen-devel@lists.xensource.com
Subject: Re: [Xen-devel] bug report of xm list and xm vcpu-list
On Thu, Dec 22, 2005 at 06:31:39PM +0900, Yoshinori Katase wrote:
> Hi,
>
> Xm list and xm vcpu-list show wrong DomID(name).
> Under this situation,
> # xm list
> Name ID Mem(MiB) VCPUs State Time(s)
> Domain-0 0 512 1 r----- 1064.6
> test1 13 64 1 r----- 83879.7
>
> # xm list 1 13
> Error: Domain ''1'' not found when running ''xm
list''
> # xm list 13 15
> Error: Domain ''13'' not found when running ''xm
list''
>
> An error message shows always the first one of given DomIDs,
> when xm list is given unexistant DomIDs.
> This is serious, when many domains are running.
This is a problem with the exception reporting from Xend (the daemon) to xm
(the client tool). The exception does not carry enough information to allow
xm to diagnose the problem correctly. Please feel free to fix this (no-one
else is working on it at the moment).
Ewan.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Ewan Mellor
2006-Jan-09 11:13 UTC
[Xen-devel] Re: Who gives exeption routine in main.py ''Not found'' in ex ?
On Fri, Jan 06, 2006 at 06:58:59PM +0900, Yoshinori Katase wrote:> Hi, Ewan. > I investigated at your suggestion. > > When un-existant domain name(id)s is given xm, > exeption routine in main.py is carried ''Not found'' in ex. > > 932: except xen.xend.XendError.XendError, ex: > 933: if len(args) > 0: > 934: handle_xend_error(argv[1], args, ex) > > But in xend.trace, XendEroor shows error DomID. > > | 43 if not dom: > | 44 raise XendError(''No such domain '' + str(x)) > | |> XendError.py:__init__ > | | 21 self.value = value > | |< XendError.py:__init__ > | ! Exception: > Traceback (most recent call last): > File "/usr/lib/python/xen/xend/server/SrvDomainDir.py", line 44, in domain > raise XendError(''No such domain '' + str(x)) > XendError: No such domain 100 > | ! Exception: > Traceback (most recent call last): > File "/usr/lib/python/xen/xend/server/SrvDomainDir.py", line 52, in get > return self.domain(x) > File "/usr/lib/python/xen/xend/server/SrvDomainDir.py", line 44, in domain > raise XendError(''No such domain '' + str(x)) > XendError: No such domain 100 > | |> XendError.py:__str__ > | | 24 return self.value > | |< XendError.py:__str__ > > Who changes xend''s error massage ?Deep in the depths of Xend''s communication support (just past the adulterers and fornicators, but before you reach the gluttonous and the slothful) you will find xen.web.SrvDir.getChild. This catches XendError and uses noChild and then xen.web.resource.ErrorPage to convert the exception to an HTTP response. This response includes the exception message as the page message. The HTTP response code "404 Not Found" is set by SrvDir.noChild. In the client, in xen.xend.XendProtocol.{xendRequest,handleStatus,handleException} the XendError exception is recreated, but this time using the HTTP reason phrase rather than the exception message. So you get "Not found" from the "404 Not Found", and you''ve lost the domain ID. Almost any arrangement would be better than this one. Please feel that you have free rein to alter things here (assuming that it still works when you are done ;-) Thank you, Ewan. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel