Merge branch 'ab/do-not-hide-failures-in-git-dot-pm'

Git.pm update.

* ab/do-not-hide-failures-in-git-dot-pm:
  perl Git.pm: don't ignore signalled failure in _cmd_close()
This commit is contained in:
Junio C Hamano 2022-02-16 15:14:30 -08:00
Родитель b9f791aee6 6798b08e84
Коммит 834625bd6f
5 изменённых файлов: 19 добавлений и 6 удалений

Просмотреть файл

@ -1686,6 +1686,16 @@ sub _setup_git_cmd_env {
# by searching for it at proper places.
sub _execv_git_cmd { exec('git', @_); }
sub _is_sig {
my ($v, $n) = @_;
# We are avoiding a "use POSIX qw(SIGPIPE SIGABRT)" in the hot
# Git.pm codepath.
require POSIX;
no strict 'refs';
$v == *{"POSIX::$n"}->();
}
# Close pipe to a subprocess.
sub _cmd_close {
my $ctx = shift @_;
@ -1698,9 +1708,16 @@ sub _cmd_close {
} elsif ($? >> 8) {
# The caller should pepper this.
throw Git::Error::Command($ctx, $? >> 8);
} elsif ($? & 127 && _is_sig($? & 127, "SIGPIPE")) {
# we might e.g. closed a live stream; the command
# dying of SIGPIPE would drive us here.
} elsif ($? & 127 && _is_sig($? & 127, "SIGABRT")) {
die sprintf('BUG?: got SIGABRT ($? = %d, $? & 127 = %d) when closing pipe',
$?, $? & 127);
} elsif ($? & 127) {
die sprintf('got signal ($? = %d, $? & 127 = %d) when closing pipe',
$?, $? & 127);
}
# else we might e.g. closed a live stream; the command
# dying of SIGPIPE would drive us here.
}
}

Просмотреть файл

@ -1,7 +1,6 @@
#!/bin/sh
test_description='git svn rmdir'
TEST_PASSES_SANITIZE_LEAK=true
. ./lib-git-svn.sh
test_expect_success 'initialize repo' '

Просмотреть файл

@ -5,7 +5,6 @@
test_description='git svn respects rewriteRoot during rebuild'
TEST_PASSES_SANITIZE_LEAK=true
. ./lib-git-svn.sh
mkdir import

Просмотреть файл

@ -5,7 +5,6 @@
test_description='git svn partial-rebuild tests'
TEST_PASSES_SANITIZE_LEAK=true
. ./lib-git-svn.sh
test_expect_success 'initialize svnrepo' '

Просмотреть файл

@ -5,7 +5,6 @@
test_description='git svn branch for subproject clones'
TEST_PASSES_SANITIZE_LEAK=true
. ./lib-git-svn.sh
test_expect_success 'initialize svnrepo' '