Change in vdsm[master]: vm: improve safety between startup and shutdown

fromani at redhat.com fromani at redhat.com
Wed Mar 23 16:02:32 UTC 2016


Francesco Romani has posted comments on this change.

Change subject: vm: improve safety between startup and shutdown
......................................................................


Patch Set 8:

(1 comment)

I don't want to push obfuscated changes. let me clean up this more.

https://gerrit.ovirt.org/#/c/44989/8/vdsm/virt/vm.py
File vdsm/virt/vm.py:

Line 1765:             self._created.set()
Line 1766: 
Line 1767:     def _domDependentInit(self):
Line 1768:         if self._destroyRequested.is_set():
Line 1769:             raise DestroyedOnStartupError(vmexitreason.DESTROYED_ON_STARTUP)
> What happens if destroy gets called after this check? Is there anything pre
The key change here is the introduction of the "created" event.

destroy() should go ahead only if the "created" event is set, so the checkpoint is reached -and the creation thread is done.

This _is_ a bit extreme, but I can't see a better (= more efficient) way to make the flows safe with respect to each other.

On the bright side, I don't expect this code to be triggered too often, destroy on startup is relatively infrequent AFAIK.

So, the creation thread must be completed before the destroy can go ahead in a fully safe way, but this may take a while.
Hence we need a timeout (implemented), and a shortcut.

The shortcut is the 'destroyRequested' event.
It has to be set as soon as possible, but _after_ the Domain object is created.

Perhaps it is better to split this 'optimization' from the main change, it could make things clearer.
Line 1770: 
Line 1771:         if not self._dom.connected:
Line 1772:             raise MissingLibvirtDomainError(vmexitreason.LIBVIRT_START_FAILED)
Line 1773: 


-- 
To view, visit https://gerrit.ovirt.org/44989
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I8718f58f1d255d9e603db75aa1f256c03c300f3a
Gerrit-PatchSet: 8
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani at redhat.com>
Gerrit-Reviewer: Arik Hadas <ahadas at redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
Gerrit-Reviewer: Francesco Romani <fromani at redhat.com>
Gerrit-Reviewer: Jenkins CI
Gerrit-Reviewer: Martin Polednik <mpolednik at redhat.com>
Gerrit-Reviewer: Michal Skrivanek <mskrivan at redhat.com>
Gerrit-Reviewer: Milan Zamazal <mzamazal at redhat.com>
Gerrit-Reviewer: Piotr Kliczewski <piotr.kliczewski at gmail.com>
Gerrit-Reviewer: Vinzenz Feenstra <vfeenstr at redhat.com>
Gerrit-Reviewer: gerrit-hooks <automation at ovirt.org>
Gerrit-HasComments: Yes


More information about the vdsm-patches mailing list