Re: [PATCH] git-svn: Fix termination issues for remote svn connections
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 5, 2013, 18:48 UTC
- Message-ID
- <xmqqli3bhzop.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <6970c0cab40c60195c8f042a3b930a0a.squirrel@83.236.132.106>
"Uli Heller" <uli.heller@daemons-point.com> writes:
Show 16 quoted lines
> When using git-svn in combination with serf-1.2.1 core dumps are > created on termination. This is caused by a bug in serf, a fix for > the bug exists (see https://code.google.com/p/serf/source/detail?r=2146). > Nevertheless, I think it makes sense to fix the issue within the > git perl module Ra.pm, too. The change frees the private copy of > the remote access object on termination which prevents the error > from happening. > > Note: Since subversion-1.8.0 and later do require serf-1.2.1 or later, > the core dumps typically do show up when upgrading to a recent version > of subversion. > > Credits: Jonathan Lambrechts for proposing a fix to Ra.pm. > Evgeny Kotkov and Ivan Zhakov for fixing the issue in serf and > pointing me to that fix. > ---
Thanks. Please sign-off your patch.
I am Cc'ing Kyle McKay who apparently had some experience working with git-svn with newer svn that can only use serf, hoping that we can get an independent opinion/test just to be sure. Also Cc'ed is Eric Wong who has been the official git-svn area expert, but I understand that Eric hasn't needed to use git-svn for quite a while, so it is perfectly fine if he does not have any comment on this one.
We may want to find a volunteer to move "git svn" forward as a new area expert (aka subsystem maintainer), by the way.
Show 19 quoted lines
> perl/Git/SVN/Ra.pm | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/perl/Git/SVN/Ra.pm b/perl/Git/SVN/Ra.pm
> index 75ecc42..78dd346 100644
> --- a/perl/Git/SVN/Ra.pm
> +++ b/perl/Git/SVN/Ra.pm
> @@ -32,6 +32,11 @@ BEGIN {
> }
> }
>
> +END {
> + $RA = undef;
> + $ra_invalid = 1;
> +}
> +
> sub _auth_providers () {
> my @rv = (
> SVN::Client::get_simple_provider(),