On Wed, 2011-01-19 at 17:02 +0000, Ian Jackson wrote:
> libxl_domain_destroy writes the command "shutdown" to the xenstore
> node with which it communicates with qemu. However:
> - qemu does not understand this command and ignores it (printing a
> message)
> - libxl doesn't wait for the answer and immediately pauses the domain
> anyway
> - destroy is the ungraceful (force) operation and should not
> negotiate with qemu anyway
> - even in the graceful shutdown case, there would actually be nothing
> that qemu needs to do.
>
> Under some circumstances, this entry in xenstore will survive the
> domain's death, ie be leaked.
>
> So remove the erroneous code.
>
> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Makes sense to me:
Acked/Reviewed-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
>
> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
> index 7ffb985..2cc2d21 100644
> --- a/tools/libxl/libxl.c
> +++ b/tools/libxl/libxl.c
> @@ -682,11 +672,6 @@ int libxl_domain_destroy(libxl_ctx *ctx, uint32_t domid,
> int force)
>
> if (libxl_device_pci_shutdown(ctx, domid) < 0)
> LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "pci shutdown failed for domid
> %d", domid);
> - if (dm_present) {
> - xs_write(ctx->xsh, XBT_NULL,
> - libxl__sprintf(&gc,
> "/local/domain/0/device-model/%d/command", domid),
> - "shutdown", strlen("shutdown"));
> - }
> rc = xc_domain_pause(ctx->xch, domid);
> if (rc < 0) {
> LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc, "xc_domain_pause
> failed for %d", domid);
>
> _______________________________________________
> 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
|