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
|