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: kreapers src Repository
Password:
Authentication realm: kreapers 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