From b32b47fb12a3043d748f723802de923d9043d7ff Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 4 Nov 2019 00:43:14 +0000 Subject: index: "git log" failures are fatal While I've never seen "git log" fail on its own, it could happen one day and we should be prepared to abort indexing when it happens. Beef up tests for t/spawn.t to ensure close() behaves on popen_rd the way we expect it to. --- lib/PublicInbox/V2Writable.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/PublicInbox/V2Writable.pm') diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index 1825da2c..02f313b0 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -1128,6 +1128,7 @@ sub sync_prepare ($$$) { --no-notes --no-color --no-renames --diff-filter=AM), $range, '--', 'm'); ++$n while <$fh>; + close $fh or die "git log failed: \$?=$?"; $pr->("$n\n") if $pr; $regen_max += $n; } @@ -1195,7 +1196,7 @@ sub unindex ($$$$) { unindex_oid($self, $git, $1, $unindexed); } delete $self->{reindex_pipe}; - $fh = undef; + close $fh or die "git log failed: \$?=$?"; return unless $sync->{-opt}->{prune}; my $after = scalar keys %$unindexed; @@ -1251,7 +1252,7 @@ sub index_epoch ($$$) { mark_deleted($self, $sync, $git, $1); } } - $fh = undef; + close $fh or die "git log failed: \$?=$?"; delete $self->{reindex_pipe}; update_last_commit($self, $git, $i, $cmt) if defined $cmt; } -- cgit v1.2.3-24-ge0c7