We will handle this errors in the API and decide what to do.
---
 PVE/Replication.pm | 95 +++++++++++++++++++++++-------------------------------
 1 file changed, 41 insertions(+), 54 deletions(-)

diff --git a/PVE/Replication.pm b/PVE/Replication.pm
index c25ed44..9bc4e61 100644
--- a/PVE/Replication.pm
+++ b/PVE/Replication.pm
@@ -304,7 +304,7 @@ sub replicate {
 }
 
 my $run_replication_nolock = sub {
-    my ($guest_class, $jobcfg, $iteration, $start_time, $logfunc, $noerr, 
$verbose) = @_;
+    my ($guest_class, $jobcfg, $iteration, $start_time, $logfunc, $verbose) = 
@_;
 
     my $jobid = $jobcfg->{id};
 
@@ -313,79 +313,66 @@ my $run_replication_nolock = sub {
     # we normaly write errors into the state file,
     # but we also catch unexpected errors and log them to syslog
     # (for examply when there are problems writing the state file)
-    eval {
-       my $state = PVE::ReplicationState::read_job_state($jobcfg);
 
-       PVE::ReplicationState::record_job_start($jobcfg, $state, $start_time, 
$iteration);
+    my $state = PVE::ReplicationState::read_job_state($jobcfg);
+
+    PVE::ReplicationState::record_job_start($jobcfg, $state, $start_time, 
$iteration);
 
-       my $t0 = [gettimeofday];
+    my $t0 = [gettimeofday];
 
-       mkdir $PVE::ReplicationState::replicate_logdir;
-       my $logfile = PVE::ReplicationState::job_logfile_name($jobid);
-       open(my $logfd, '>', $logfile) ||
-           die "unable to open replication log '$logfile' - $!\n";
+    mkdir $PVE::ReplicationState::replicate_logdir;
+    my $logfile = PVE::ReplicationState::job_logfile_name($jobid);
+    open(my $logfd, '>', $logfile) ||
+       die "unable to open replication log '$logfile' - $!\n";
 
-       my $logfunc_wrapper = sub {
-           my ($msg) = @_;
+    my $logfunc_wrapper = sub {
+       my ($msg) = @_;
 
-           my $ctime = get_log_time();
-           print $logfd "$ctime $jobid: $msg\n";
-           if ($logfunc) {
-               if ($verbose) {
-                   $logfunc->("$ctime $jobid: $msg");
-               } else {
-                   $logfunc->($msg);
-               }
+       my $ctime = get_log_time();
+       print $logfd "$ctime $jobid: $msg\n";
+       if ($logfunc) {
+           if ($verbose) {
+               $logfunc->("$ctime $jobid: $msg");
+           } else {
+               $logfunc->($msg);
            }
-       };
+       }
+    };
 
-       $logfunc_wrapper->("start replication job");
+    $logfunc_wrapper->("start replication job");
 
-       eval {
-           $volumes = replicate($guest_class, $jobcfg, $state, $start_time, 
$logfunc_wrapper);
-       };
-       my $err = $@;
+    eval {
+       $volumes = replicate($guest_class, $jobcfg, $state, $start_time, 
$logfunc_wrapper);
+    };
+    my $err = $@;
 
-       if ($err) {
-           my $msg = "end replication job with error: $err";
-           chomp $msg;
-           $logfunc_wrapper->($msg);
-       } else {
-           $logfunc_wrapper->("end replication job");
-       }
+    if ($err) {
+       my $msg = "end replication job with error: $err";
+       chomp $msg;
+       $logfunc_wrapper->($msg);
+    } else {
+       $logfunc_wrapper->("end replication job");
+    }
 
-       PVE::ReplicationState::record_job_end($jobcfg, $state, $start_time, 
tv_interval($t0), $err);
+    PVE::ReplicationState::record_job_end($jobcfg, $state, $start_time, 
tv_interval($t0), $err);
 
-       close($logfd);
+    close($logfd);
 
-       die $err if $err && !$noerr;
-    };
-    if (my $err = $@) {
-       if ($noerr) {
-           warn "$jobid: got unexpected replication job error - $err";
-       } else {
-           die $err;
-       }
-    }
+    die $err if $err;
 
     return $volumes;
 };
 
 sub run_replication {
-    my ($guest_class, $jobcfg, $iteration, $start_time, $logfunc, $noerr, 
$verbose) = @_;
+    my ($guest_class, $jobcfg, $iteration, $start_time, $logfunc, $verbose) = 
@_;
 
     my $volumes;
 
-    eval {
-       my $timeout = 2; # do not wait too long - we repeat periodically anyways
-       $volumes = PVE::GuestHelpers::guest_migration_lock(
-           $jobcfg->{guest}, $timeout, $run_replication_nolock,
-           $guest_class, $jobcfg, $iteration, $start_time, $logfunc, $noerr, 
$verbose);
-    };
-    if (my $err = $@) {
-       return undef if $noerr;
-       die $err;
-    }
+    my $timeout = 2; # do not wait too long - we repeat periodically anyways
+    $volumes = PVE::GuestHelpers::guest_migration_lock(
+       $jobcfg->{guest}, $timeout, $run_replication_nolock,
+       $guest_class, $jobcfg, $iteration, $start_time, $logfunc, $verbose);
+
     return $volumes;
 }
 
-- 
2.11.0


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to