[pve-devel] [PATCH container] fix #3030: activate volumes at the right time for restart migration

Fabian Ebner f.ebner at proxmox.com
Thu Oct 15 12:24:26 CEST 2020


The lxc-pve-poststop-hook deactivates volumes when a container is stopped.
To make sure that volumes are active when using the restart mode,
move activate_volumes to after the conditional vm_stop. The lxc-stop command
used in vm_stop waits for the hook script to complete, so there is no race.

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---

For VMs we don't have restart migration, so no similar bug there.

An alternative would be to communicate to the hook script to
not deactivate the volumes. That would mean writing the lock=migrate
to the config earlier (currently it's being set in phase1) and
then checking for the lock in the hookscript.

 src/PVE/LXC/Migrate.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/PVE/LXC/Migrate.pm b/src/PVE/LXC/Migrate.pm
index 90d74b4..5ef16d2 100644
--- a/src/PVE/LXC/Migrate.pm
+++ b/src/PVE/LXC/Migrate.pm
@@ -90,8 +90,6 @@ sub prepare {
 
     });
 
-    PVE::Storage::activate_volumes($self->{storecfg}, $need_activate);
-
     # todo: test if VM uses local resources
 
     # test ssh connection
@@ -110,6 +108,8 @@ sub prepare {
 	$running = 0;
     }
 
+    PVE::Storage::activate_volumes($self->{storecfg}, $need_activate);
+
     return $running;
 }
 
-- 
2.20.1






More information about the pve-devel mailing list