[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |