git-svn: avoid segfaults in 'git svn branch'
Re-enable t9128, t9141, and t9167 which were disabled due to these random segfaults. The bug has also been reported against the subversion perl bindings in Debian¹. Hopefully this will reach upstream subversion if a fix is made to subversion. ¹ https://bugs.debian.org/888791
This commit is contained in:
parent
7ac1fbccc9
commit
a51e1362a2
@ -0,0 +1,40 @@
|
|||||||
|
From 7f6f75e97acd25f8e95ce431e16d2e1c2093845d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eric Wong <e@80x24.org>
|
||||||
|
Date: Mon, 29 Jan 2018 23:11:07 +0000
|
||||||
|
Subject: [PATCH] git-svn: control destruction order to avoid segfault
|
||||||
|
|
||||||
|
It seems necessary to control destruction ordering to avoid a
|
||||||
|
segfault with SVN 1.9.5 when using "git svn branch". I've also
|
||||||
|
reported the problem against libsvn-perl to Debian [Bug #888791],
|
||||||
|
but releasing the SVN::Client instance can be beneficial anyways to
|
||||||
|
save memory.
|
||||||
|
|
||||||
|
ref: https://bugs.debian.org/888791
|
||||||
|
Tested-by: Todd Zullinger <tmz@pobox.com>
|
||||||
|
Reported-by: brian m. carlson <sandals@crustytoothpaste.net>
|
||||||
|
Signed-off-by: Eric Wong <e@80x24.org>
|
||||||
|
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
||||||
|
Signed-off-by: Todd Zullinger <tmz@pobox.com>
|
||||||
|
---
|
||||||
|
git-svn.perl | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/git-svn.perl b/git-svn.perl
|
||||||
|
index aa242d4f4f..b012980246 100755
|
||||||
|
--- a/git-svn.perl
|
||||||
|
+++ b/git-svn.perl
|
||||||
|
@@ -1199,6 +1199,11 @@ sub cmd_branch {
|
||||||
|
$ctx->copy($src, $rev, $dst)
|
||||||
|
unless $_dry_run;
|
||||||
|
|
||||||
|
+ # Release resources held by ctx before creating another SVN::Ra
|
||||||
|
+ # so destruction is orderly. This seems necessary with SVN 1.9.5
|
||||||
|
+ # to avoid segfaults.
|
||||||
|
+ $ctx = undef;
|
||||||
|
+
|
||||||
|
$gs->fetch_all;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.16.1
|
||||||
|
|
12
git.spec
12
git.spec
@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
Name: git
|
Name: git
|
||||||
Version: 2.16.1
|
Version: 2.16.1
|
||||||
Release: 1%{?rcrev}%{?dist}
|
Release: 2%{?rcrev}%{?dist}
|
||||||
Summary: Fast Version Control System
|
Summary: Fast Version Control System
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
@ -81,6 +81,8 @@ Source99: print-failed-test-output
|
|||||||
Patch0: git-1.8-gitweb-home-link.patch
|
Patch0: git-1.8-gitweb-home-link.patch
|
||||||
# https://bugzilla.redhat.com/490602
|
# https://bugzilla.redhat.com/490602
|
||||||
Patch1: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
|
Patch1: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
|
||||||
|
# https://public-inbox.org/git/20180129231653.GA22834@starla/
|
||||||
|
Patch2: 0001-git-svn-control-destruction-order-to-avoid-segfault.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
@ -596,9 +598,7 @@ find %{buildroot}%{_pkgdocdir} -name "*.html" | xargs linkchecker
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Tests to skip on all releases and architectures
|
# Tests to skip on all releases and architectures
|
||||||
# - tests in t9128, t9141, and t9167 which call 'git svn branch' fail
|
GIT_SKIP_TESTS=""
|
||||||
# intermittently with SIGSEGV in the subversion bindings
|
|
||||||
GIT_SKIP_TESTS="t9128.[34] t9141.[34] t9167.3"
|
|
||||||
|
|
||||||
%ifarch aarch64 %{arm} %{power64}
|
%ifarch aarch64 %{arm} %{power64}
|
||||||
# Skip tests which fail on aarch64, arm, and ppc
|
# Skip tests which fail on aarch64, arm, and ppc
|
||||||
@ -803,6 +803,10 @@ rm -rf %{buildroot}
|
|||||||
# No files for you!
|
# No files for you!
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jan 29 2018 Todd Zullinger <tmz@pobox.com> - 2.16.1-2
|
||||||
|
- git-svn: avoid segfaults in 'git svn branch', re-enable t9128, t9141, and
|
||||||
|
t9167
|
||||||
|
|
||||||
* Mon Jan 22 2018 Todd Zullinger <tmz@pobox.com> - 2.16.1-1
|
* Mon Jan 22 2018 Todd Zullinger <tmz@pobox.com> - 2.16.1-1
|
||||||
- Update to 2.16.1
|
- Update to 2.16.1
|
||||||
- Avoid python dependency in git-core (#1536471)
|
- Avoid python dependency in git-core (#1536471)
|
||||||
|
Loading…
Reference in New Issue
Block a user