[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Problems with diff over DAV, but ci, co, log, etc. work fine, all is well with svnserve

From: Christopher Nehren <apeiron+usenet_at_coitusmentis.info>
Date: 2005-05-11 21:27:21 CEST

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2005-03-31, Ben Collins-Sussman scribbled these
curious markings:
> So yeah, rebuild all the svn libraries (and mod_dav_svn) with
> --enable-maintainer-mode, then fire up gdb on the httpd binary, and
> tell gdb to 'run -X'. Get a detailed backtrace of the segfault,
> assuming you can still reproduce the crash.

Sorry for the delay. Had to arrange a time that I could take down the
httpd, and rebuild everything involved (which included an update to both
svn and httpd, and that required me to rebuild mod_perl *sigh*). Things
have gotten much worse since my initial posting, though. svn likes to go
into a frozen state that I can only kill by using ^Z and kill (^C won't
work) when I try to check out any repository. I've tried recreating my
repositories a dozen times (and each time losing revision history ...
*sigh*) and it's never solved anything. I now have a backtrace, though.
Here it is:

- -- cut --
(gdb) cont
Continuing.

Program received signal SIGBUS, Bus error.
[Switching to Thread 14 (LWP 100117)]
0x285f998e in compare_files (changed_p=0xbfabaabc, root1=0x824d050, path1=0x8273060 "/DictServer.cs", root2=0x8255050,
    path2=0x8273070 "/DictServer.cs", pool=0x8273018) at subversion/libsvn_repos/reporter.c:421
421 {
(gdb)
bt
#0 0x285f998e in compare_files (changed_p=0xbfabaabc, root1=0x824d050, path1=0x8273060 "/DictServer.cs", root2=0x8255050,
    path2=0x8273070 "/DictServer.cs", pool=0x8273018) at subversion/libsvn_repos/reporter.c:421
#1 0x285f9d3e in delta_files (b=0x823f8b0, file_baton=0x82730d0, s_rev=1, s_path=0x8273070 "/DictServer.cs",
    t_path=0x8273060 "/DictServer.cs", pool=0x8273018) at subversion/libsvn_repos/reporter.c:510
#2 0x285fa41b in update_entry (b=0x823f8b0, s_rev=1, s_path=0x8273070 "/DictServer.cs", s_entry=0x8267730,
    t_path=0x8273060 "/DictServer.cs", t_entry=0x826d730, dir_baton=0x82361e0, e_path=0x8273050 "DictServer.cs", info=0x0,
    recurse=1, pool=0x8273018) at subversion/libsvn_repos/reporter.c:689
#3 0x285fa806 in delta_dirs (b=0x823f8b0, s_rev=1, s_path=0x82360a0 "/", t_path=0x285ea098 "/", dir_baton=0x82361e0,
    e_path=0x285fea17 "", start_empty=0, pool=0x8237018) at subversion/libsvn_repos/reporter.c:776
#4 0x285faba6 in drive (b=0x823f8b0, s_rev=1, info=0x8236028, pool=0x8237018) at subversion/libsvn_repos/reporter.c:852
#5 0x285faed4 in finish_report (b=0x823f8b0, pool=0x8237018) at subversion/libsvn_repos/reporter.c:913
#6 0x285fb08f in svn_repos_finish_report (baton=0x823f8b0, pool=0x8237018) at subversion/libsvn_repos/reporter.c:965
#7 0x285e4119 in dav_svn__update_report (resource=0x823f670, doc=0x823f2a0, output=0x8237cc0)
    at /usr/ports/devel/subversion/work/subversion-1.1.4/subversion/mod_dav_svn/update.c:1384
#8 0x285e6451 in dav_svn_deliver_report (r=0x8237050, resource=0x823f670, doc=0x823f2a0, output=0x8237cc0)
    at /usr/ports/devel/subversion/work/subversion-1.1.4/subversion/mod_dav_svn/version.c:1051
#9 0x285c90dd in dav_method_report (r=0x8237050) at mod_dav.c:4042
#10 0x285ca1a4 in dav_handler (r=0x8237050) at mod_dav.c:4678
#11 0x0806bab2 in ap_run_handler (r=0x8237050) at config.c:152
#12 0x0806c231 in ap_invoke_handler (r=0x8237050) at config.c:364
#13 0x08066d28 in ap_process_request (r=0x8237050) at http_request.c:249
#14 0x08060f4f in ap_process_http_connection (c=0x822f140) at http_core.c:251
#15 0x08076e3a in ap_run_process_connection (c=0x822f140) at connection.c:43
#16 0x08077234 in ap_process_connection (c=0x822f140, csd=0x822f050) at connection.c:176
- ---Type <return> to continue, or q <return> to quit---
#17 0x08068204 in process_socket (p=0x822f018, sock=0x822f050, my_child_num=0, my_thread_num=2, bucket_alloc=0x8231018)
    at worker.c:521
#18 0x08068997 in worker_thread (thd=0x8157340, dummy=0x81bb960) at worker.c:835
#19 0x283fae90 in dummy_worker (opaque=0x8157340) at thread.c:105
#20 0x28440af1 in pthread_create () from /usr/lib/libpthread.so.1
#21 0x284fb0df in _ctx_start () from /lib/libc.so.5
(gdb) bt full
#0 0x285f998e in compare_files (changed_p=0xbfabaabc, root1=0x824d050, path1=0x8273060 "/DictServer.cs", root2=0x8255050,
    path2=0x8273070 "/DictServer.cs", pool=0x8273018) at subversion/libsvn_repos/reporter.c:421
        size1 = 2909207746033693320
        size2 = 2908925343343923280
        digest1 = "°Ò(\b\001\000\000\000hª«¿N\225_("
        digest2 = "\000\000\000\000\200µ^(\000\000\000\000è\022)\b"
        stream1 = (svn_stream_t *) 0x0
        stream2 = (svn_stream_t *) 0x8273288
        buf1 = Error accessing memory address 0xbfaa1a10: Bad address.
(gdb) frame
#0 0x285f998e in compare_files (changed_p=0xbfabaabc, root1=0x824d050, path1=0x8273060 "/DictServer.cs", root2=0x8255050,
    path2=0x8273070 "/DictServer.cs", pool=0x8273018) at subversion/libsvn_repos/reporter.c:421
421 {
(gdb) list
416 different contents, FALSE if they have the same contents. */
417 static svn_error_t *
418 compare_files (svn_boolean_t *changed_p, svn_fs_root_t *root1,
419 const char *path1, svn_fs_root_t *root2, const char *path2,
420 apr_pool_t *pool)
421 {
422 svn_filesize_t size1, size2;
423 unsigned char digest1[APR_MD5_DIGESTSIZE], digest2[APR_MD5_DIGESTSIZE];
424 svn_stream_t *stream1, *stream2;
425 char buf1[SVN_STREAM_CHUNK_SIZE], buf2[SVN_STREAM_CHUNK_SIZE];
(gdb)
- -- cut --

Thanks in advance for any assistance with this. svn really rocks when it
works. You guys should see all the advocacy work I do for you. ;)

Best Regards,
Christopher Nehren
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (FreeBSD)

iD8DBQFCgl5kk/lo7zvzJioRAtXaAJ0aGOVGV95Ep8twA59B1KPV1vV7dgCePCB3
VplOhUvPd4ZZwADIItZ+Tq0=
=QGga
-----END PGP SIGNATURE-----

-- 
I abhor a system designed for the "user", if that word is a coded
pejorative meaning "stupid and unsophisticated". -- Ken Thompson
If you ask the wrong questions, you get answers like "42" and "God".
Unix is user friendly. However, it isn't idiot friendly.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed May 11 23:53:51 2005

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.