[pve-devel] [PATCH qemu-server] fix #4358: destroy_vm: Ignore 'suspended' lock when destroying VM

Thomas Lamprecht t.lamprecht at proxmox.com
Tue Jan 3 16:43:21 CET 2023


Am 03/01/2023 um 15:45 schrieb Stefan Hanreich:
> Since there is not really a reason why hibernated VMs shouldn't be

IMO the key that this is safe is that there's now (well since quite a while)
two locks so that going into suspension and being actually suspended can be
differentiated via the `suspending` (not safe) and `suspended` (safe) locks.
Maybe that could be worked in the commit message (could do son on applying it)

> able to be removed, we can safely ignore the 'suspended' lock in
> destroy_vm.
Is the saved VM state then actually cleaned up?

Maybe a extra hint for such things in the web UI could be nice, but
must not necessarily be tied to this patch (series).

> 
> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
> ---
>  PVE/QemuServer.pm | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 39fc6b0..5dae168 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -2341,7 +2341,9 @@ sub destroy_vm {
>  
>      my $conf = PVE::QemuConfig->load_config($vmid);
>  
> -    PVE::QemuConfig->check_lock($conf) if !$skiplock;
> +    if (!$skiplock && !PVE::QemuConfig->has_lock($conf, 'suspended')) {
> +	PVE::QemuConfig->check_lock($conf);
> +    }
>  
>      if ($conf->{template}) {
>  	# check if any base image is still used by a linked clone






More information about the pve-devel mailing list