[libvirt] [PATCH RFC] Add domainSave/Restore to libxl driver

Markus Groß gross at univention.de
Wed May 25 07:16:54 UTC 2011


Am Dienstag 24 Mai 2011 06:06:08 schrieb Jim Fehlig:
> > +
> > +        event = virDomainEventNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
> > +                                         VIR_DOMAIN_EVENT_STOPPED_SAVED);
> > +
> > +        if (libxlVmReap(driver, vm, 1, VIR_DOMAIN_SHUTOFF_SAVED) != 0) {
> > +            libxlError(VIR_ERR_INTERNAL_ERROR,
> > +                       _("Failed to destroy domain '%d'"), dom->id);
> > +            goto cleanup;
> > +        }
> >   
> 
> And here call libxl_domain_destroy() directly instead of libxlVmReap(),
> allowing the event handler to cleanup the vm.
> 
> Can you make these changes and ensure all the save/restore issues are
> resolved in your environment?

I made these changes but this leads to another issue.
When using the event handler to cleanup the domain
there seems to be a race condition.
The call to libxl_event_get_domain_death_info returns a value != 1
sometimes and the domain gets not cleaned up.

The latest version of the patch I posted in this thread earlier does
not have this issue as it cleans up the domain directly.

Maybe the every now and then fail of libxl_event_get_domain_death_info
is a result of a bug or unhandled race condition in Xen.

Cheers,
Markus




More information about the libvir-list mailing list