Change in vdsm[master]: Avoid going into 'Paused' status during long lasting migrations

vfeenstr at redhat.com vfeenstr at redhat.com
Wed Jan 8 08:19:48 UTC 2014


Vinzenz Feenstra has posted comments on this change.

Change subject: Avoid going into 'Paused' status during long lasting migrations
......................................................................


Patch Set 10:

(3 comments)

....................................................
Commit Message
Line 12: the destination to wait for the migration to finish.
Line 13: This is now reflected as the migration_destination_timeout.
Line 14: 
Line 15: If the VM after the timeout still has the state PAUSED and the
Line 16: reason is migration we're going to raise an MigrationError.
This is the destination. We are trying to destroy the destination from the source on errors, cancellation etc. But what if there's a network outage in the middle? In some weird cases we'll never hear about it.
We're only destroying VMs after the timeout which are still in (Migration + Paused State)
NOTE: Any other reason for the paused state is kept untouched.
Line 17: 
Line 18: Change-Id: I6bb1c9ae7ead92093c0d300df7c3567ab20b1e09
Line 19: Bug-Url: https://bugzilla.redhat.com/1028917


....................................................
File vdsm/vm.py
Line 3660:                         if state[1] == libvirt.VIR_DOMAIN_PAUSED_MIGRATION:
Line 3661:                             raise MigrationError("Migration Error - Timed out "
Line 3662:                                                  "(did not receive success "
Line 3663:                                                  "event)")
Line 3664:                     self.log.debug("NOTE: incomingMigrationFinished event has "
This is logged when we're NOT wanting to destroy the VM because we're not sure why the migration did not finished (e.g. missed the event)
logging the state and reason is to have some data to figure out what is the current state (for investigation)

So no I disagree putting it into the exception, because the in the case of the MigrationError we know that the status must be paused.
Line 3665:                                    "not been set and wait timed out after %d "
Line 3666:                                    "seconds. Current VM state: %d, reason %d. "
Line 3667:                                    "Continuing with VM initialization anyway.",
Line 3668:                                    timeout, state[0], state[1])


Line 3665:                                    "not been set and wait timed out after %d "
Line 3666:                                    "seconds. Current VM state: %d, reason %d. "
Line 3667:                                    "Continuing with VM initialization anyway.",
Line 3668:                                    timeout, state[0], state[1])
Line 3669:             except libvirt.libvirtError as e:
Because I am now throwing MigrationError and I want to avoid false positive log messages. And therefore restrict it to VIR_ERR_NO_DOMAIN.
Line 3670:                 if e.get_error_code() == libvirt.VIR_ERR_NO_DOMAIN:
Line 3671:                     if not self._incomingMigrationFinished.isSet():
Line 3672:                         newMsg = ('%s - Timed out '
Line 3673:                                   '(did not receive success event)' %


-- 
To view, visit http://gerrit.ovirt.org/21963
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I6bb1c9ae7ead92093c0d300df7c3567ab20b1e09
Gerrit-PatchSet: 10
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Vinzenz Feenstra <vfeenstr at redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
Gerrit-Reviewer: Francesco Romani <fromani at redhat.com>
Gerrit-Reviewer: Michal Skrivanek <michal.skrivanek at redhat.com>
Gerrit-Reviewer: Nir Soffer <nsoffer at redhat.com>
Gerrit-Reviewer: Vinzenz Feenstra <vfeenstr at redhat.com>
Gerrit-Reviewer: Yaniv Bronhaim <ybronhei at redhat.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes


More information about the vdsm-patches mailing list