From ca5c27f065c869fa3779785c2a4d5a2821cf34d5 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Thu, 5 Jan 2017 09:39:13 +0100 Subject: [PATCH] drive-mirror: warn use POSIX::_exit on exec failure --- PVE/QemuServer.pm | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 0b866cdd..31e30fa6 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -5926,17 +5926,16 @@ sub qemu_drive_mirror { die "forking socat tunnel failed"; } elsif ($pid == 0) { exec(@$cmd); - exit(-1); - } else { - $jobs->{"drive-$drive"}->{pid} = $pid; + warn "exec failed: $!\n"; + POSIX::_exit(-1); + } + $jobs->{"drive-$drive"}->{pid} = $pid; - my $timeout = 0; - while (1) { - last if -S $unixsocket; - die if $timeout > 5; - $timeout++; - sleep 1; - } + my $timeout = 0; + while (!-S $unixsocket) { + die "nbd connection helper timed out\n" + if $timeout++ > 5; + sleep 1; } } else { my $storecfg = PVE::Storage::config();