From 017953c2e65974214b9b8289863340af8f82e2b0 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Wed, 21 Oct 2020 11:02:02 -0400 Subject: [PATCH] Move lock release to phase D --- node-daemon/pvcnoded/VMInstance.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/node-daemon/pvcnoded/VMInstance.py b/node-daemon/pvcnoded/VMInstance.py index 70d48c80..a57669c4 100644 --- a/node-daemon/pvcnoded/VMInstance.py +++ b/node-daemon/pvcnoded/VMInstance.py @@ -503,11 +503,6 @@ class VMInstance(object): if do_migrate_shutdown: migrate_shutdown_result = migrate_shutdown() - self.last_currentnode = zkhandler.readdata(self.zk_conn, '/domains/{}/node'.format(self.domuuid)) - self.last_lastnode = zkhandler.readdata(self.zk_conn, '/domains/{}/lastnode'.format(self.domuuid)) - - migrate_lock_state.release() - self.logger.out('Releasing write lock for synchronization phase C', state='i', prefix='Domain {}'.format(self.domuuid)) lock.release() self.logger.out('Released write lock for synchronization phase C', state='o', prefix='Domain {}'.format(self.domuuid)) @@ -517,6 +512,10 @@ class VMInstance(object): self.logger.out('Acquiring read lock for synchronization phase D', state='i', prefix='Domain {}'.format(self.domuuid)) lock.acquire() self.logger.out('Acquired read lock for synchronization phase D', state='o', prefix='Domain {}'.format(self.domuuid)) + + self.last_currentnode = zkhandler.readdata(self.zk_conn, '/domains/{}/node'.format(self.domuuid)) + self.last_lastnode = zkhandler.readdata(self.zk_conn, '/domains/{}/lastnode'.format(self.domuuid)) + self.logger.out('Releasing read lock for synchronization phase D', state='i', prefix='Domain {}'.format(self.domuuid)) lock.release() self.logger.out('Released read lock for synchronization phase D', state='o', prefix='Domain {}'.format(self.domuuid)) @@ -524,6 +523,8 @@ class VMInstance(object): # Wait 0.5 seconds for everything to stabilize before we declare all-done time.sleep(0.5) migrate_lock_node.release() + migrate_lock_state.release() + self.inmigrate = False return