diff options
author | Eric Wong <e@80x24.org> | 2016-06-21 02:39:27 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-06-21 02:40:44 +0000 |
commit | b04e5cf1bc8969cca74ef764f2de960b1ea821a4 (patch) | |
tree | 2be20349c2691c020e1e5e901081b87d38383823 /lib/PublicInbox/Git.pm | |
parent | a07ac38854c1308c4b58e13253527ec3b5e7e1f9 (diff) | |
download | public-inbox-b04e5cf1bc8969cca74ef764f2de960b1ea821a4.tar.gz |
fork failures are unfortunately common when Xapian has gigabytes and gigabytes mmapped.
Diffstat (limited to 'lib/PublicInbox/Git.pm')
-rw-r--r-- | lib/PublicInbox/Git.pm | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm index bc0e5064..f47bc439 100644 --- a/lib/PublicInbox/Git.pm +++ b/lib/PublicInbox/Git.pm @@ -28,7 +28,9 @@ sub _bidi_pipe { my @cmd = ('git', "--git-dir=$self->{git_dir}", qw(cat-file), $batch); my $redir = { 0 => fileno($out_r), 1 => fileno($in_w) }; - $self->{$pid} = spawn(\@cmd, undef, $redir); + my $p = spawn(\@cmd, undef, $redir); + defined $p or fail($self, "spawn failed: $!"); + $self->{$pid} = $p; $out_w->autoflush(1); $self->{$out} = $out_w; $self->{$in} = $in_r; @@ -122,6 +124,7 @@ sub popen { sub qx { my ($self, @cmd) = @_; my $fh = $self->popen(@cmd); + defined $fh or return; local $/ = "\n"; return <$fh> if wantarray; local $/; |