]> git.proxmox.com Git - pve-container.git/blobdiff - src/PVE/API2/LXC/Snapshot.pm
api: snapshot delete: prefix lock-fail error
[pve-container.git] / src / PVE / API2 / LXC / Snapshot.pm
index 8d0319a1bba97cde05799d309ba78b84194381d9..4be16ad1553bb9434b1f769b5f465f4dd4e83d21 100644 (file)
@@ -199,7 +199,9 @@ __PACKAGE__->register_method({
 
        my $snapname = extract_param($param, 'snapname');
 
+       my $lock_obtained;
        my $do_delete = sub {
+           $lock_obtained = 1;
            PVE::Cluster::log_msg('info', $authuser, "delete snapshot VM $vmid: $snapname");
            PVE::LXC::Config->snapshot_delete($vmid, $snapname, $param->{force});
        };
@@ -208,7 +210,11 @@ __PACKAGE__->register_method({
            if ($param->{force}) {
                $do_delete->();
            } else {
-               PVE::GuestHelpers::guest_migration_lock($vmid, 10, $do_delete);
+               eval { PVE::GuestHelpers::guest_migration_lock($vmid, 10, $do_delete); };
+               if (my $err = $@) {
+                   die $err if $lock_obtained;
+                   die "Failed to obtain guest migration lock - replication running?\n";
+               }
            }
        };