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

Re: [Xen-devel] [patch] Improve error reporting in XenD



I've not seen this patch appear in xen-unstable. Any chance that it can make
it into Xen 3.0.3 release. Its a really triival 1-liner which significantly
improves error handling when talking to XenD.

Regards,
Dan.

On Tue, Aug 29, 2006 at 06:12:22PM +0100, Daniel P. Berrange wrote:
> In the XenD code which deals with dispatching of requests (SrvBase.py) the
> dispatch process is obviously wrapped in a try/except block. Unfortunately
> in the except block, the HTTP error code is never updated to indicate a 
> failure
> condition.  
> 
> So, for example, if you try to create a domain requesting 3 GB of memory,
> and Dom0 fails to balloon, XenD will happily still return 'HTTP 202 OK'
> even though the domain creation failed. This leaves apps talking to XenD
> no way to discover that there was a failure in the create operation, other
> than telling the user to look in /var/log/xend.log where the details are
> logged.
> 
> The attached patch sets the HTTP return code to '500 Internal Error' when
> a request throws an exception. This lets client detect & report the failure
> of domain creation immediately, improving the end user experiance
> 
> As an example user interaction with current behaviour. libvirt is told by
> XenD that domain creation succeeded, so it goes onto to wait for devices
> where upon its told there is no such domain:
> 
>   Starting install...
>   libvir: Xen Daemon error : POST operation failed: No such domain demo12
>   Failed to get devices for domain demo12
> 
> With the attached patch applied, the initial domain creation failure can 
> be detected & reported immediately:
> 
>   Starting install...
>   libvir: Xen Daemon error : POST operation failed: (xend.err 'Error creating 
> domain: The privileged domain did not balloon!')
>   Failed to create domain demo12
> 
> 
> Signed-off by: Daniel P. Berrange <berrange@xxxxxxxxxx>
> 
> 
> Regards,
> Dan.
> -- 
> |=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
> |=-           Perl modules: http://search.cpan.org/~danberr/              -=|
> |=-               Projects: http://freshmeat.net/~danielpb/               -=|
> |=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

> diff -r 68a1b61ecd28 tools/python/xen/web/SrvBase.py
> --- a/tools/python/xen/web/SrvBase.py Mon Aug 28 13:08:41 2006 +0100
> +++ b/tools/python/xen/web/SrvBase.py Tue Aug 29 12:54:28 2006 -0400
> @@ -84,6 +84,7 @@ class SrvBase(resource.Resource):
>              try:
>                  return op_method(op, req)
>              except Exception, exn:
> +                req.setResponseCode(http.INTERNAL_SERVER_ERROR, "Request 
> failed: " + op)
>                  log.exception("Request %s failed.", op)
>                  if req.useSxp():
>                      return ['xend.err', str(exn)]

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


-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

_______________________________________________
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®.