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

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



Dan,

It's a pretty trivial patch and seems like a reasonable thing for the
HTTP server to do when it fails to create a domain.

I've applied the patch to xen-unstable.

Thanks,

Alastair

On Mon, 2006-09-11 at 13:22 +0100, Daniel P. Berrange wrote:
> 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
> 
> 


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