You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Karamchedu, Rajeev K." <ra...@tigr.ORG> on 2006/01/04 03:13:38 UTC

svn-push segfaulting in make_reporter()

[My apologies for resending. No subject: in my previous email]

 

Is this a bug ? my svn-push seems to be dying in make_reporter().  See details below:


Like a few others, I am trying to get svn-push going as well.

My setup:

* Subversion 1.3.0 (I tried using 1.2.3 and upgraded to 1.3.0 this morning) 
  on src and dest repos
* src repo is webdav with authentication requirement for read and write
* dest repo is accessible via svn+ssh

The svn-push.c found in the contrib dir doesn't do anything. It seg faults whenever
a http authentication is encountered.

I added some auth routines based on the tools/examples/minimal-client.c and atleast got the authentication to work. The code itself is at

http://svn.tigr.org/filedetails.php?repname=tigr&path=%2Frajeev%2Ftrunk%2Fsvn-push.c


Now the logic stops and seg-faults in  make_reporter(), which is called by svn_ra_do_diff().
I have documented all this at http://kreaper.blogsome.com/2006/01/02/svn-pushc-crashes-in-make_reporter-3/

but here is the relevant GDB output. It looks like a bug to me in either neon
or make_reporter. but I am not an active programmer. I just need SVN Mirroring
to work!

gdb) set args -r 757:758 http://src.domain.com/srcrepo/module svn+ssh://svn@dest.domain.com/destrepo/module

(gdb) run

Starting program: svn-push-r 757:758 http://src.domain.com/srcrepo/module svn+ssh://svn@dest.domain.com/destrepo/module

Before auth open
After auth open
Before opening src
Before opening dest

svn@dest.domain.com's password: ****
Before opening commit_editor
Authentication realm: kreaper’s src Repository
Password:
Authentication realm: kreaper’s src Repository
Username: testuser
Password: ****

After commit editor
before do diff

Program received signal SIGSEGV, Segmentation fault.
0x0 in ?? ()
(gdb) where
#0 0x0 in ?? ()
#1 0x7f514558 in make_reporter () from /home/rajeev/svn/lib/libsvn_ra_dav-1.so.0
#2 0x7f514d20 in svn_ra_dav__do_diff () from /home/rajeev/svn/lib/libsvn_ra_dav-1.so.0
#3 0x7f505c98 in compat_do_diff () from /home/rajeev/svn/lib/libsvn_ra_dav-1.so.0
#4 0x11558 in ?? ()

(gdb) bt 5
#0 0x0 in ?? ()
#1 0x7f514558 in make_reporter () from /home/rajeev/svn/lib/libsvn_ra_dav-1.so.0
#2 0x7f514d20 in svn_ra_dav__do_diff () from /home/rajeev/svn/lib/libsvn_ra_dav-1.so.0
#3 0x7f505c98 in compat_do_diff () from /home/rajeev/svn/lib/libsvn_ra_dav-1.so.0
#4 0x11558 in ?? ()
(gdb) trace make_reporter
Tracepoint 1 at 0x7f5143d4
(gdb) info tp
Num Enb Address PassC StepC What
1 y 0x7f5143d4 0 0


help!



Re: svn-push segfaulting in make_reporter()

Posted by Max Bowsher <ma...@ukf.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Karamchedu, Rajeev K. wrote:
> Is this a bug ? my svn-push seems to be dying in make_reporter().  See
> details below:
> 
> Like a few others, I am trying to get svn-push going as well.
> 
> The svn-push.c found in the contrib dir doesn't do anything. It seg
> faults whenever a http authentication is encountered.
> 
> I added some auth routines based on the tools/examples/minimal-client.c
> and atleast got the authentication to work. The code itself is at
> 
> http://svn.tigr.org/filedetails.php?repname=tigr&path=%2Frajeev%2Ftrunk%2Fsvn-push.c
> 
> Now the logic stops and seg-faults in  make_reporter(), which is called
> by svn_ra_do_diff().
> I have documented all this at
> http://kreaper.blogsome.com/2006/01/02/svn-pushc-crashes-in-make_reporter-3/
> 
> but here is the relevant GDB output. It looks like a bug to me in either
> neon or make_reporter. but I am not an active programmer. I just need SVN
> Mirroring to work!

Under these circumstances, I question whether svn-push.c is the right
course to follow - it is more of a toy than an actual tool, as evidenced
  by the fact that it makes no attempt whatsoever to copy log messages
(replacing them with "Hello, world!" !!!), authors, or dates.

> gdb) set args -r 757:758 http://src.domain.com/srcrepo/module
> svn+ssh://svn@dest.domain.com/destrepo/module
> (gdb) run
...
> Program received signal SIGSEGV, Segmentation fault.
> 0x0 in ?? ()
> (gdb) where
> #0 0x0 in ?? ()
> #1 0x7f514558 in make_reporter () from
> /home/rajeev/svn/lib/libsvn_ra_dav-1.so.0

You really need to build subversion with debug symbols for gdb
backtraces to give more than a vague idea of the problem location.

It turns out that the problem is that svn-push.c is failing to
initialize the non-optional open_tmp_file ra_callback. This just happens
to work with ra_local, but breaks when using ra_dav.

(I'm about to commit a fix to svn-push.c)

Max.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Cygwin)

iD8DBQFDvFqAfFNSmcDyxYARAkzuAJ4wQm67ffv5+pDCzZoD7lhxbdR6TgCgobYB
wYaFdKQ/Eixr9HYajTNy9Yo=
=6IUz
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org