git/0001-git-svn-control-destruction-order-to-avoid-segfault.patch
Todd Zullinger a51e1362a2 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
2018-01-31 15:31:04 -05:00

41 lines
1.2 KiB
Diff

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