mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-05-02 13:14:11 +00:00
migrate: tolerate query-migrate errors
This commit is contained in:
parent
9bf371a66b
commit
b0b756c14d
@ -348,15 +348,28 @@ sub phase2 {
|
|||||||
my $lstat = 0;
|
my $lstat = 0;
|
||||||
my $usleep = 2000000;
|
my $usleep = 2000000;
|
||||||
my $i = 0;
|
my $i = 0;
|
||||||
|
my $err_count = 0;
|
||||||
while (1) {
|
while (1) {
|
||||||
$i++;
|
$i++;
|
||||||
my $avglstat = $lstat/$i if $lstat;
|
my $avglstat = $lstat/$i if $lstat;
|
||||||
|
|
||||||
usleep ($usleep);
|
usleep($usleep);
|
||||||
my $stat = PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "query-migrate");
|
my $stat;
|
||||||
|
eval {
|
||||||
|
$stat = PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "query-migrate");
|
||||||
|
};
|
||||||
|
if (my $err = $@) {
|
||||||
|
$err_count++;
|
||||||
|
warn "query migrate failed: $err\n";
|
||||||
|
if ($err_count <= 5) {
|
||||||
|
usleep(1000000);
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
die "too many query migrate failures - aborting\n";
|
||||||
|
}
|
||||||
if ($stat->{status} =~ m/^(active|completed|failed|cancelled)$/im) {
|
if ($stat->{status} =~ m/^(active|completed|failed|cancelled)$/im) {
|
||||||
$merr = undef;
|
$merr = undef;
|
||||||
|
$err_count = 0;
|
||||||
if ($stat->{status} eq 'completed') {
|
if ($stat->{status} eq 'completed') {
|
||||||
my $delay = time() - $start;
|
my $delay = time() - $start;
|
||||||
if ($delay > 0) {
|
if ($delay > 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user