]> git.proxmox.com Git - qemu-server.git/blobdiff - PVE/VZDump/QemuServer.pm
Revert "fix #1071: VMs with IOThread enabled disks can now be backed up"
[qemu-server.git] / PVE / VZDump / QemuServer.pm
index 42680f85de6a94a75220ffe3caa53fc1b73e34cf..b8d8fa9b44db11a4272721b143c0a33a285c2da1 100644 (file)
@@ -396,7 +396,7 @@ sub archive {
                'config-file' => $conffile,
                devlist => $devlist
            };
-           
+
            $params->{'firewall-file'} = $firewall if -e $firewall;
            $qmpclient->queue_cmd($vmid, $backup_cb, 'backup', %$params);
        };
@@ -417,7 +417,8 @@ sub archive {
            }
        }
 
-       $qmpclient->queue_execute();
+       eval { $qmpclient->queue_execute() };
+       my $qmperr = $@;
 
        if ($agent_running){
            eval { PVE::QemuServer::vm_mon_cmd($vmid, "guest-fsfreeze-thaw"); };
@@ -425,6 +426,7 @@ sub archive {
                $self->logerr($err);
            }
        }
+       die $qmperr if $qmperr;
        die $qmpclient->{errors}->{$vmid} if $qmpclient->{errors}->{$vmid};
 
        if ($cpid) {
@@ -437,7 +439,13 @@ sub archive {
        $self->loginfo("started backup task '$uuid'");
 
        if ($resume_on_backup) {
-           $self->loginfo("resume VM");
+           if (my $stoptime = $task->{vmstoptime}) {
+               my $delay = time() - $task->{vmstoptime};
+               $task->{vmstoptime} = undef; # avoid printing 'online after ..' twice
+               $self->loginfo("resuming VM again after $delay seconds");
+           } else {
+               $self->loginfo("resuming VM again");
+           }
            PVE::QemuServer::vm_mon_cmd($vmid, 'cont');
        }