git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* git svn fetch segfault on exit
@ 2013-07-18  9:21 Jonathan Lambrechts
  2013-07-18 12:18 ` Thomas Rast
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Jonathan Lambrechts @ 2013-07-18  9:21 UTC (permalink / raw)
  To: git

Hi,
I'm using archlinux with git version 1.8.3.3, svn version 1.8.0 
(r1490375) and perl v5.18.0 (built for x86_64-linux-thread-multi)

Every git svn call that involves a fetch produces a segmentation fault 
on exit (but the operation succeeds).

*** Error in `/usr/bin/perl': double free or corruption (!prev): 
0x0000000002ce1ac0 ***
======= Backtrace: =========
/usr/lib/libc.so.6(+0x788ae)[0x7fd4d83798ae]
/usr/lib/libc.so.6(+0x79587)[0x7fd4d837a587]
/usr/lib/libapr-1.so.0(apr_allocator_destroy+0x1d)[0x7fd4d568e9ad]
/usr/lib/libapr-1.so.0(apr_pool_terminate+0x30)[0x7fd4d568f590]
/usr/lib/perl5/vendor_perl/auto/SVN/_Core/_Core.so(_wrap_apr_terminate+0x50)[0x7fd4d6886920]
/usr/lib/perl5/core_perl/CORE/libperl.so(Perl_pp_entersub+0x571)[0x7fd4d876f821]
/usr/lib/perl5/core_perl/CORE/libperl.so(Perl_runops_standard+0x16)[0x7fd4d8767e26]
/usr/lib/perl5/core_perl/CORE/libperl.so(Perl_call_sv+0x3b0)[0x7fd4d86f93b0]
/usr/lib/perl5/core_perl/CORE/libperl.so(Perl_call_list+0x2c7)[0x7fd4d86fb477]
/usr/lib/perl5/core_perl/CORE/libperl.so(perl_destruct+0x1321)[0x7fd4d86fca91]
/usr/bin/perl(main+0x111)[0x400e01]
/usr/lib/libc.so.6(__libc_start_main+0xf5)[0x7fd4d8322a15]
/usr/bin/perl[0x400e71]

This bug has already been reported by others on subversion mailing list 
and and archlinux bbs:
https://bugs.archlinux.org/task/36070
http://permalink.gmane.org/gmane.comp.version-control.subversion.user/114019

I tried to fix it but the problem is that I know absolutely nothing of 
perl. Anyway, I noticed that with the modifications bellow (in 
Git::SVN::Ra::new) the crash does not occur (I do not think it's a real 
fix though).

--- /usr/share/perl5/vendor_perl/Git/SVN/Ra.pm.orig    2013-07-18 
11:15:23.584625508 +0200
+++ /usr/share/perl5/vendor_perl/Git/SVN/Ra.pm    2013-07-18 
11:16:14.624622422 +0200
@@ -79,7 +79,6 @@
      SVN::_Core::svn_config_ensure($config_dir, undef);
      my ($baton, $callbacks) = 
SVN::Core::auth_open_helper(_auth_providers);
      my $config = SVN::Core::config_get_config($config_dir);
-    $RA = undef;
      my $dont_store_passwords = 1;
      my $conf_t = ${$config}{'config'};
      {
@@ -108,7 +107,7 @@
                            config => $config,
                    pool => SVN::Pool->new,
                            auth_provider_callbacks => $callbacks);
-    $RA = bless $self, $class;
+    $self = bless $self, $class;

      # Make sure its canonicalized
      $self->url($url);
@@ -118,7 +117,7 @@
      $self->{cache} = { check_path => { r => 0, data => {} },
                         get_dir => { r => 0, data => {} } };

-    return $RA;
+    return $self;
  }

  sub url {


Jonathan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git svn fetch segfault on exit
  2013-07-18  9:21 git svn fetch segfault on exit Jonathan Lambrechts
@ 2013-07-18 12:18 ` Thomas Rast
  2013-09-02  7:40 ` uli
  2013-09-02 11:57 ` Evgeny Kotkov
  2 siblings, 0 replies; 5+ messages in thread
From: Thomas Rast @ 2013-07-18 12:18 UTC (permalink / raw)
  To: Jonathan Lambrechts; +Cc: git

Jonathan Lambrechts <jonathanlambrechts@gmail.com> writes:

> Every git svn call that involves a fetch produces a segmentation fault
> on exit (but the operation succeeds).
>
> *** Error in `/usr/bin/perl': double free or corruption (!prev):
> 0x0000000002ce1ac0 ***
> ======= Backtrace: =========
> /usr/lib/libc.so.6(+0x788ae)[0x7fd4d83798ae]
> /usr/lib/libc.so.6(+0x79587)[0x7fd4d837a587]
> /usr/lib/libapr-1.so.0(apr_allocator_destroy+0x1d)[0x7fd4d568e9ad]
> /usr/lib/libapr-1.so.0(apr_pool_terminate+0x30)[0x7fd4d568f590]
> /usr/lib/perl5/vendor_perl/auto/SVN/_Core/_Core.so(_wrap_apr_terminate+0x50)[0x7fd4d6886920]
> /usr/lib/perl5/core_perl/CORE/libperl.so(Perl_pp_entersub+0x571)[0x7fd4d876f821]
> /usr/lib/perl5/core_perl/CORE/libperl.so(Perl_runops_standard+0x16)[0x7fd4d8767e26]
> /usr/lib/perl5/core_perl/CORE/libperl.so(Perl_call_sv+0x3b0)[0x7fd4d86f93b0]
> /usr/lib/perl5/core_perl/CORE/libperl.so(Perl_call_list+0x2c7)[0x7fd4d86fb477]
> /usr/lib/perl5/core_perl/CORE/libperl.so(perl_destruct+0x1321)[0x7fd4d86fca91]
> /usr/bin/perl(main+0x111)[0x400e01]
> /usr/lib/libc.so.6(__libc_start_main+0xf5)[0x7fd4d8322a15]
> /usr/bin/perl[0x400e71]

Can you check if your version of the perl subversion bindings were
compiled against the perl and subversion versions that you have
installed?

Perl -- as an interpreted language -- is mostly supposed to be safe from
such segfaults, and since git-svn is pure perl, the likely culprit is in
the bindings or the svn libraries.  And the easiest way to get that to
break is a version mismatch.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git svn fetch segfault on exit
  2013-07-18  9:21 git svn fetch segfault on exit Jonathan Lambrechts
  2013-07-18 12:18 ` Thomas Rast
@ 2013-09-02  7:40 ` uli
  2013-09-02 11:57 ` Evgeny Kotkov
  2 siblings, 0 replies; 5+ messages in thread
From: uli @ 2013-09-02  7:40 UTC (permalink / raw)
  To: git

I'm facing the same issue. I'm using git-1.8.4 and subversion 1.8.3 on
Ubuntu.

I'm proposing a different modification to Ra.pm:



Jonathan's modifications basically disable the use of $RA. The modifications
above ensure that the destructor of $RA is called before doing an
apr_terminate().

Best regards, Uli.



--
View this message in context: http://git.661346.n2.nabble.com/git-svn-fetch-segfault-on-exit-tp7592205p7595155.html
Sent from the git mailing list archive at Nabble.com.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git svn fetch segfault on exit
  2013-07-18  9:21 git svn fetch segfault on exit Jonathan Lambrechts
  2013-07-18 12:18 ` Thomas Rast
  2013-09-02  7:40 ` uli
@ 2013-09-02 11:57 ` Evgeny Kotkov
  2013-09-02 13:05   ` Uli Heller
  2 siblings, 1 reply; 5+ messages in thread
From: Evgeny Kotkov @ 2013-09-02 11:57 UTC (permalink / raw)
  To: Jonathan Lambrechts; +Cc: git, uli.heller

> Every git svn call that involves a fetch produces a segmentation fault on
> exit (but the operation succeeds).

>From what I see, this looks quite similiar to the 'serf' issue I've recently
reported to the serf-dev mailing list [1].  It should be fixed by now, so,
the latest serf@trunk build should work fine.

[1]: https://groups.google.com/d/msg/serf-dev/gOn9HTUN98U/pz0_AqdrmJYJ


Regards,
Evgeny Kotkov

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git svn fetch segfault on exit
  2013-09-02 11:57 ` Evgeny Kotkov
@ 2013-09-02 13:05   ` Uli Heller
  0 siblings, 0 replies; 5+ messages in thread
From: Uli Heller @ 2013-09-02 13:05 UTC (permalink / raw)
  To: git

Am 02.09.2013 13:57, schrieb Evgeny Kotkov:
>> Every git svn call that involves a fetch produces a segmentation fault on
>> exit (but the operation succeeds).
>  From what I see, this looks quite similiar to the 'serf' issue I've recently
> reported to the serf-dev mailing list [1].  It should be fixed by now, so,
> the latest serf@trunk build should work fine.
>
> [1]: https://groups.google.com/d/msg/serf-dev/gOn9HTUN98U/pz0_AqdrmJYJ
>
>

I've tried the patch for 'serf' included in the thread mentioned above 
and I can confirm that it fixes the issue for me.
Thanks Evgeny!

Best regards, Uli.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-09-02 13:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-18  9:21 git svn fetch segfault on exit Jonathan Lambrechts
2013-07-18 12:18 ` Thomas Rast
2013-09-02  7:40 ` uli
2013-09-02 11:57 ` Evgeny Kotkov
2013-09-02 13:05   ` Uli Heller

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).