From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 7D0531F8C8 for ; Sun, 12 Sep 2021 07:47:16 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 1/7] lei_mirror: simplify error reporting Date: Sun, 12 Sep 2021 07:47:10 +0000 Message-Id: <20210912074716.4713-2-e@80x24.org> In-Reply-To: <20210912074716.4713-1-e@80x24.org> References: <20210912074716.4713-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Slowly transitioning to using die() more, which hopefully improves code reusability between lei and non-lei parts of our code. --- lib/PublicInbox/LeiMirror.pm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/PublicInbox/LeiMirror.pm b/lib/PublicInbox/LeiMirror.pm index 8689b825..96580f9e 100644 --- a/lib/PublicInbox/LeiMirror.pm +++ b/lib/PublicInbox/LeiMirror.pm @@ -103,7 +103,7 @@ sub _try_config { my $f = "$ce-$$.tmp"; open(my $fh, '+>', $f) or return $lei->err("open $f: $! (non-fatal)"); my $opt = { 0 => $lei->{0}, 1 => $fh, 2 => $lei->{2} }; - my $cerr = run_reap($lei, $cmd, $opt) // return; + my $cerr = run_reap($lei, $cmd, $opt); if (($cerr >> 8) == 22) { # 404 missing unlink($f) if -s $fh == 0; return; @@ -150,9 +150,9 @@ sub run_reap { $opt->{pgid} = 0; my $pid = spawn($cmd, undef, $opt); my $reap = PublicInbox::OnDestroy->new($lei->can('sigint_reap'), $pid); - my $err = waitpid($pid, 0) == $pid ? undef : "waitpid @$cmd: $!"; + waitpid($pid, 0) == $pid or die "waitpid @$cmd: $!"; @$reap = (); # cancel reap - $err ? $lei->err($err) : $? + $? } sub clone_v1 { @@ -163,7 +163,7 @@ sub clone_v1 { my $pfx = $curl->torsocks($lei, $uri) or return; my $cmd = [ @$pfx, clone_cmd($lei, my $opt = {}), $uri->as_string, $self->{dst} ]; - my $cerr = run_reap($lei, $cmd, $opt) // return; + my $cerr = run_reap($lei, $cmd, $opt); return $lei->child_error($cerr, "@$cmd failed") if $cerr; _try_config($self); index_cloned_inbox($self, 1); @@ -193,7 +193,7 @@ failed to extract epoch number from $src my @cmd = clone_cmd($lei, my $opt = {}); while (my $pair = shift(@src_edst)) { my $cmd = [ @$pfx, @cmd, @$pair ]; - my $cerr = run_reap($lei, $cmd, $opt) // return; + my $cerr = run_reap($lei, $cmd, $opt); return $lei->child_error($cerr, "@$cmd failed") if $cerr; } undef $on_destroy; # unlock @@ -228,9 +228,8 @@ sub try_manifest { my $reap = PublicInbox::OnDestroy->new($lei->can('sigint_reap'), $pid); my $gz = do { local $/; <$fh> } // die "read(curl $uri): $!"; close $fh; - my $err = waitpid($pid, 0) == $pid ? undef : "waitpid @$cmd: $!"; + waitpid($pid, 0) == $pid or die "waitpid @$cmd: $!"; @$reap = (); - return $lei->err($err) if $err; if ($?) { return try_scrape($self) if ($? >> 8) == 22; # 404 missing return $lei->child_error($?, "@$cmd failed");