On Sun, Dec 09, 2018 at 13:01:27 -0500, Demi M. Obenour wrote: > This can happen via `xl destroy`, for example. When this happens, > libvirt is stuck in an inconsistent state: libvirt believes the domain > is still running, but attempts to use libvirt’s APIs to shutdown the > domain fail. The only way out of this situation is to restart libvirt. > > To prevent this from happening, process LIBXL_EVENT_TYPE_DOMAIN_DEATH as > well as LIBXL_EVENT_TYPE_DOMAIN_SHUTDOWN, but only if libvirt has not > already begun to destroy the domain. > > Signed-off-by: Demi Obenour <demiobenour@xxxxxxxxx> > --- > src/conf/domain_conf.h | 4 ++++ > src/libxl/libxl_domain.c | 24 +++++++++++++++++++----- > 2 files changed, 23 insertions(+), 5 deletions(-) > > diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h > index b24e6ec3de..d3520bde15 100644 > --- a/src/conf/domain_conf.h > +++ b/src/conf/domain_conf.h > @@ -2620,6 +2620,10 @@ struct _virDomainObj { > unsigned int updated : 1; > unsigned int removing : 1; > > + /* Only used by the Xen backend */ > + unsigned int being_destroyed_by_libvirt : 1; > + unsigned int already_destroyed : 1; Please put this into 'struct _libxlDomainObjPrivate' if it's going to be only used by the libxl driver. Also the 'bool' type should be used. > + > virDomainDefPtr def; /* The current definition */ > virDomainDefPtr newDef; /* New definition to activate at shutdown */ >
Attachment:
signature.asc
Description: PGP signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list