diff options
author | Eric Wong <e@80x24.org> | 2019-11-04 00:43:14 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-11-04 02:06:41 +0000 |
commit | b32b47fb12a3043d748f723802de923d9043d7ff (patch) | |
tree | 07291642fea1324a2469ecb9febc5fb4a5789d23 /lib/PublicInbox/V2Writable.pm | |
parent | 17d2778c404c25c459f320a7f92913d17569fc59 (diff) | |
download | public-inbox-b32b47fb12a3043d748f723802de923d9043d7ff.tar.gz |
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.
Diffstat (limited to 'lib/PublicInbox/V2Writable.pm')
-rw-r--r-- | lib/PublicInbox/V2Writable.pm | 5 |
1 files changed, 3 insertions, 2 deletions
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; } |