all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH qemu-server] fix #7697: snapshot hook name mismatch
@ 2026-06-12 10:07 Jakob Klocker
  2026-06-18 12:40 ` Arthur Bied-Charreton
  0 siblings, 1 reply; 2+ messages in thread
From: Jakob Klocker @ 2026-06-12 10:07 UTC (permalink / raw)
  To: pve-devel; +Cc: Jakob Klocker

pve-guest-common invokes the snapshot hook with the name
"after-unfreeze" [0], but qemu-server checks for "after-freeze" [1].

As a result, the post-unfreeze hook is never executed and the
query-savevm polling loop intended to wait for savevm-end cleanup
is skipped.

[0] https://git.proxmox.com/?p=pve-guest-common.git;a=blob;f=src/PVE/AbstractConfig.pm;h=7bcae1943094f99e98a8ba19428e1f90d4936080;hb=572ed3533d5ba75e82a5a0e367e2db1aff290c09#l868
[1] https://git.proxmox.com/?p=qemu-server.git;a=blob;f=src/PVE/QemuConfig.pm;h=80a3999e85886b603bdb1b5a8d3d2b3887dff369;hb=bef9334af96eb30cab8d1f5c41c0974eaf0bbdc4#l374

Link: https://bugzilla.proxmox.com/show_bug.cgi?id=7697
Signed-off-by: Jakob Klocker <j.klocker@proxmox.com>
---
 src/PVE/QemuConfig.pm     | 2 +-
 src/test/snapshot-test.pm | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/PVE/QemuConfig.pm b/src/PVE/QemuConfig.pm
index 80a3999e..c24eb835 100644
--- a/src/PVE/QemuConfig.pm
+++ b/src/PVE/QemuConfig.pm
@@ -371,7 +371,7 @@ sub __snapshot_create_vol_snapshots_hook {
                     if $snap->{vmstate};
             };
             warn $@ if $@;
-        } elsif ($hook eq "after-freeze") {
+        } elsif ($hook eq "after-unfreeze") {
             # savevm-end is async, we need to wait
             for (;;) {
                 my $stat = mon_cmd($vmid, "query-savevm");
diff --git a/src/test/snapshot-test.pm b/src/test/snapshot-test.pm
index e28107b9..3e3b9412 100644
--- a/src/test/snapshot-test.pm
+++ b/src/test/snapshot-test.pm
@@ -379,12 +379,13 @@ sub qmp_cmd {
     if ($exec eq "savevm-end") {
         die "savevm-end disabled\n"
             if !$vm_mon->{savevm_end};
+        $vm_mon->{savevm_ended} = 1;
         return;
     }
     if ($exec eq "query-savevm") {
         return {
             "status" => "completed",
-            "bytes" => 1024 * 1024 * 1024,
+            "bytes" => $vm_mon->{savevm_ended} ? 0 : 1024 * 1024 * 1024,
             "total-time" => 5000,
         };
     }
-- 
2.47.3




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH qemu-server] fix #7697: snapshot hook name mismatch
  2026-06-12 10:07 [PATCH qemu-server] fix #7697: snapshot hook name mismatch Jakob Klocker
@ 2026-06-18 12:40 ` Arthur Bied-Charreton
  0 siblings, 0 replies; 2+ messages in thread
From: Arthur Bied-Charreton @ 2026-06-18 12:40 UTC (permalink / raw)
  To: Jakob Klocker; +Cc: pve-devel

On Fri, Jun 12, 2026 at 12:07:58PM +0200, Jakob Klocker wrote:
> pve-guest-common invokes the snapshot hook with the name
> "after-unfreeze" [0], but qemu-server checks for "after-freeze" [1].
> 
> As a result, the post-unfreeze hook is never executed and the
> query-savevm polling loop intended to wait for savevm-end cleanup
> is skipped.
> 
> [0] https://git.proxmox.com/?p=pve-guest-common.git;a=blob;f=src/PVE/AbstractConfig.pm;h=7bcae1943094f99e98a8ba19428e1f90d4936080;hb=572ed3533d5ba75e82a5a0e367e2db1aff290c09#l868
> [1] https://git.proxmox.com/?p=qemu-server.git;a=blob;f=src/PVE/QemuConfig.pm;h=80a3999e85886b603bdb1b5a8d3d2b3887dff369;hb=bef9334af96eb30cab8d1f5c41c0974eaf0bbdc4#l374
> 
> Link: https://bugzilla.proxmox.com/show_bug.cgi?id=7697
> Signed-off-by: Jakob Klocker <j.klocker@proxmox.com>
> ---
>  src/PVE/QemuConfig.pm     | 2 +-
>  src/test/snapshot-test.pm | 3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/src/PVE/QemuConfig.pm b/src/PVE/QemuConfig.pm
> index 80a3999e..c24eb835 100644
> --- a/src/PVE/QemuConfig.pm
> +++ b/src/PVE/QemuConfig.pm
> @@ -371,7 +371,7 @@ sub __snapshot_create_vol_snapshots_hook {
>                      if $snap->{vmstate};
>              };
>              warn $@ if $@;
> -        } elsif ($hook eq "after-freeze") {
> +        } elsif ($hook eq "after-unfreeze") {
>              # savevm-end is async, we need to wait
>              for (;;) {
>                  my $stat = mon_cmd($vmid, "query-savevm");
> diff --git a/src/test/snapshot-test.pm b/src/test/snapshot-test.pm
> index e28107b9..3e3b9412 100644
> --- a/src/test/snapshot-test.pm
> +++ b/src/test/snapshot-test.pm
> @@ -379,12 +379,13 @@ sub qmp_cmd {
>      if ($exec eq "savevm-end") {
>          die "savevm-end disabled\n"
>              if !$vm_mon->{savevm_end};
> +        $vm_mon->{savevm_ended} = 1;
>          return;
>      }
>      if ($exec eq "query-savevm") {
>          return {
>              "status" => "completed",
> -            "bytes" => 1024 * 1024 * 1024,
> +            "bytes" => $vm_mon->{savevm_ended} ? 0 : 1024 * 1024 * 1024,
>              "total-time" => 5000,
>          };
>      }
> -- 
> 2.47.3
> 

I tested the series fixing #5032 [0], which depends on this, and
the after-unfreeze hook is indeed executed. Consider this:

Tested-by: Arthur Bied-Charreton <a.bied-charreton@proxmox.com>

[0] https://lore.proxmox.com/all/20260612122942.181958-1-j.klocker@proxmox.com/T/#u





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-06-18 12:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-12 10:07 [PATCH qemu-server] fix #7697: snapshot hook name mismatch Jakob Klocker
2026-06-18 12:40 ` Arthur Bied-Charreton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal