You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by root <eb...@yahoo.com> on 2004/01/27 20:03:12 UTC

svnserve hang on SMP

Hi,

I have been trying to track down this problem for
weeks.  

Problem: On a large repository with mostly binary
files, doing a checkout from a network client will
hang in the middle of the checkot.  This happens using
svn:// svn+ssh:// and https:// (regardless of
protocol).  This does not happen with file:///

The server is the following:

Linux kafka.localdomain 2.4.20-28.9smp #1 SMP Thu Dec
18 13:37:36 EST 2003 i686 i686 i386 GNU/Linux (RedHat
9)

svn, version 0.36.0 (dev build)
   compiled Jan 23 2004, 09:46:28

The following repository access (RA) modules are
available:

* ra_dav : Module for accessing a repository via
WebDAV (DeltaV) protocol.
  - handles 'http' schema
* ra_local : Module for accessing a repository on
local disk.
  - handles 'file' schema
* ra_svn : Module for accessing a repository using the
svn network protocol.
  - handles 'svn' schema

apr-0.9.4-0.1
apr-util-0.9.4-0.1
berkeley-db-4.2.52
neon-0.24.3-1
openssl-0.9.7a-20
zlib-1.1.4-8

The client is the following (note problem occurs with
svn cmd line tools also):

TortoiseSVN 0.24.0, Build 554, UNICODE
Subversion 0.35.1, dev build
apr 0.9.5
apr-iconv 0.9.5
apr-utils 0.9.5
berkeley db 4.2.52
neon 0.24
OpenSSL 0.9.7c 30 Sep 2003
zlib 1.2.1

I have compiled subversion with
--enable-maintainer-mode.  When the problem occurs
(hang) there is no output to stdout.  I do not believe
that this is a permissions problem.  I have a wrapper
script that sets umask on svnserve binary.  I am the
only one accessing this repository.  When it hangs,
the steps I take are:

Kill the client; see that the svnserve process exits
successfully on the server via ps command.  

svnadmin recover..

fix the permissions, if necessary.  

Re: svnserve hang on SMP

Posted by Philip Martin <ph...@codematters.co.uk>.
root <eb...@yahoo.com> writes:

> Philip -- thx for that.  svnserve spawns two child
> processes when the client does a checkout.

Yes, checkout/update/switch use two connections, hence two processes.
Everything looks normal, there is no sign of a BDB database problem.
It looks like some sort of communication problem, but I have no idea
what it could be.  Perhaps your network is misbehaving?

> (gdb) bt
> #0  0xffffe002 in ?? ()
> #1  0x4007dd98 in readbuf_input (conn=0x8057c30,
> data=0x8057c40 "( check-path ( 0: ( 1 ) ) ) or ) )
> 168.1.10/svn/pictures ) ", len=0xbfffeed0)
>     at subversion/libsvn_ra_svn/marshal.c:243

marshal.c:243 is a call into APR.  This is the "other" connection used
to make requests while processing the response on the "main"
connection.

> #2  0x4007dedf in readbuf_fill (conn=0x8057c30,
> pool=0x80641d0) at
> subversion/libsvn_ra_svn/marshal.c:264
> #3  0x4007df4b in readbuf_getchar (conn=0x8057c30,
> pool=0x80641d0, result=0xbfffef3f "@L\e\b@
> P\001@xïÿ¿Óï\a@0|\005\bÐA\006\blïÿ¿ºï\a@")
>     at subversion/libsvn_ra_svn/marshal.c:274
> #4  0x4007df99 in readbuf_getchar_skip_whitespace
> (conn=0x8057c30, pool=0x80641d0, result=0xbfffef3f
> "@L\e\b@ P\001@xïÿ¿Óï\a@0|\005\bÐA\006\blïÿ¿ºï\a@")
>     at subversion/libsvn_ra_svn/marshal.c:284
> #5  0x4007eb6c in svn_ra_svn_read_item
> (conn=0x8057c30, pool=0x80641d0, item=0xbfffef6c) at
> subversion/libsvn_ra_svn/marshal.c:570
> #6  0x4007efd3 in svn_ra_svn_read_tuple
> (conn=0x8057c30, pool=0x80641d0, fmt=0x40080798 "wl")
> at subversion/libsvn_ra_svn/marshal.c:687
> #7  0x4007f2de in svn_ra_svn_handle_commands
> (conn=0x8057c30, pool=0x8055c28, commands=0x804ec60,
> baton=0xbffff000)
>     at subversion/libsvn_ra_svn/marshal.c:759
> #8  0x0804e222 in serve (conn=0x8057c30,
> root=0x804e612 "/", tunnel=0, read_only=0,
> pool=0x8055c28) at subversion/svnserve/serve.c:1122
> #9  0x0804ae4a in main (argc=2, argv=0xbffff274) at
> subversion/svnserve/main.c:395
> #10 0x42015704 in __libc_start_main () from
> /lib/tls/libc.so.6

> (gdb) bt
> #0  0xffffe002 in ?? ()
> #1  0x4007da5f in writebuf_output (conn=0x8057c30,
> pool=0x8275b30,
>     data=0x40e804e0 "Ïó¬Z2%
> \tÐ\002J\230\bµLåÞ\232\215éÍÐ\227:¾å­qp\237Î?¤nïrsÒ±É\223»à4\003ä\002{ú\217OÇÜ-¼9ì\006k«ÞA\037\231c¥µ±ßÚõ?\220§ÓúßE¾óC\233î\"C­\177´ÿ",
> len=95311) at subversion/libsvn_ra_svn/marshal.c:155

marshal.c:155 is another APR call.  This is the connection that sends
and receives the main response.

You haven't supplied a client stack trace, but I would expect it to be
blocked reading the data being written by this process.  I have no
idea why it hangs.  You may want to build APR with debug information.
You can also try running "strace -p process_id" on the client and
server processes.  Other than that, I don't know how to help you.

> #2  0x4007dc30 in writebuf_write (conn=0x8057c30,
> pool=0x8275b30,
>     data=0x40e804e0 "Ïó¬Z2%
> \tÐ\002J\230\bµLåÞ\232\215éÍÐ\227:¾å­qp\237Î?¤nïrsÒ±É\223»à4\003ä\002{ú\217OÇÜ-¼9ì\006k«ÞA\037\231c¥µ±ßÚõ?\220§ÓúßE¾óC\233î\"C­\177´ÿ",
> len=96527) at subversion/libsvn_ra_svn/marshal.c:200
> #3  0x4007e2be in svn_ra_svn_write_string
> (conn=0x8057c30, pool=0x8275b30, str=0xbfffe8f0) at
> subversion/libsvn_ra_svn/marshal.c:367
> #4  0x4007e563 in vwrite_tuple (conn=0x8057c30,
> pool=0x8275b30, fmt=0x40080330 "s", ap=0xbfffe8d8
> "øèÿ¿-½\a@\020=(\bÿ\017")
>     at subversion/libsvn_ra_svn/marshal.c:429
> #5  0x4007f4f1 in svn_ra_svn_write_cmd
> (conn=0x8057c30, pool=0x8275b30, cmdname=0x40080332
> "textdelta-chunk", fmt=0x4008032f "cs")
>     at subversion/libsvn_ra_svn/marshal.c:800
> #6  0x4007bd9b in ra_svn_svndiff_handler
> (baton=0x8275c08, data=0x40e80020 "ÿØÿà",
> len=0xbfffe950) at
> subversion/libsvn_ra_svn/editorp.c:252
> #7  0x400652c7 in svn_stream_write (stream=0x40df5040,
> data=0x40e80020 "ÿØÿà", len=0xbfffe950) at
> subversion/libsvn_subr/stream.c:105
> #8  0x4004ee41 in window_handler (window=0x82c2e50,
> baton=0x827bbc0) at
> subversion/libsvn_delta/svndiff.c:181
> #9  0x4005086a in svn_txdelta_send_txstream
> (txstream=0x8277c80, handler=0x4004ead3
> <window_handler>, handler_baton=0x827bbc0,
> pool=0x8277b78)
>     at subversion/libsvn_delta/text_delta.c:601
> #10 0x4001c369 in send_text_delta (c=0xbfffed90,
> file_baton=0x8275c08, base_checksum=0x0,
> delta_stream=0x8277c80, pool=0x8277b78)
>     at subversion/libsvn_repos/delta.c:590
> #11 0x4001c87c in delta_files (c=0xbfffed90,
> file_baton=0x8275c08, source_path=0x0,
> target_path=0x8275b68 "2001/Honeymoon/Spring Bay
> 02.jpg",
>     pool=0x8275b30) at
> subversion/libsvn_repos/delta.c:746
> #12 0x4001ca63 in add_file_or_dir (c=0xbfffed90,
> dir_baton=0x81d37e0, target_path=0x8275b68
> "2001/Honeymoon/Spring Bay 02.jpg",
>     edit_path=0x8275b90 "2001/Honeymoon/Spring Bay
> 02.jpg", tgt_kind=svn_node_file, pool=0x8275b30) at
> subversion/libsvn_repos/delta.c:817
> #13 0x4001d092 in delta_dirs (c=0xbfffed90,
> dir_baton=0x81d37e0, source_path=0x0,
> target_path=0x81d3780 "2001/Honeymoon",
>     edit_path=0x81d3790 "2001/Honeymoon",
> pool=0x81d3748) at
> subversion/libsvn_repos/delta.c:1015
> #14 0x4001c9d3 in add_file_or_dir (c=0xbfffed90,
> dir_baton=0x80934d8, target_path=0x81d3780
> "2001/Honeymoon", edit_path=0x81d3790
> "2001/Honeymoon",
>     tgt_kind=svn_node_dir, pool=0x81d3748) at
> subversion/libsvn_repos/delta.c:806
> #15 0x4001d092 in delta_dirs (c=0xbfffed90,
> dir_baton=0x80934d8, source_path=0x0,
> target_path=0x8093498 "2001", edit_path=0x80934a0
> "2001",
>     pool=0x8093460) at
> subversion/libsvn_repos/delta.c:1015
> #16 0x4001c9d3 in add_file_or_dir (c=0xbfffed90,
> dir_baton=0x8064570, target_path=0x8093498 "2001",
> edit_path=0x80934a0 "2001", tgt_kind=svn_node_dir,
>     pool=0x8093460) at
> subversion/libsvn_repos/delta.c:806
> #17 0x4001d092 in delta_dirs (c=0xbfffed90,
> dir_baton=0x8064570, source_path=0x8064468 "",
> target_path=0x8064460 "", edit_path=0x400252eb "",
>     pool=0x8064188) at
> subversion/libsvn_repos/delta.c:1015
> #18 0x4001be0e in svn_repos_dir_delta
> (src_root=0x80709a8, src_parent_dir=0x80643c8 "",
> src_entry=0x80643d0 "", tgt_root=0x8076bd0,
>     tgt_fullpath=0x8064460 "", editor=0x8064320,
> edit_baton=0x8064360, authz_read_func=0,
> authz_read_baton=0x0, text_deltas=1, recurse=1,
> entry_props=1,
>     ignore_ancestry=0, pool=0x8064188) at
> subversion/libsvn_repos/delta.c:357
> #19 0x4002330f in finish_report
> (report_baton=0x8064378, pool=0x8066190) at
> subversion/libsvn_repos/reporter.c:484
> #20 0x40023353 in svn_repos_finish_report
> (report_baton=0x8064378, pool=0x8066190) at
> subversion/libsvn_repos/reporter.c:495
> #21 0x0804b938 in finish_report (conn=0x8057c30,
> pool=0x8066190, params=0x8066250, baton=0xbfffef10) at
> subversion/svnserve/serve.c:293
> #22 0x4007f386 in svn_ra_svn_handle_commands
> (conn=0x8057c30, pool=0x8064188, commands=0x804ea60,
> baton=0xbfffef10)
>     at subversion/libsvn_ra_svn/marshal.c:766
> #23 0x0804ba4d in accept_report (conn=0x8057c30,
> pool=0x8064188, b=0xbffff000, rev=1, target=0x80642a0
> "", tgt_path=0x0, text_deltas=1, recurse=1,
>     ignore_ancestry=0) at
> subversion/svnserve/serve.c:344
> #24 0x0804d0aa in update (conn=0x8057c30,
> pool=0x8064188, params=0x8064238, baton=0xbffff000) at
> subversion/svnserve/serve.c:757
> #25 0x4007f386 in svn_ra_svn_handle_commands
> (conn=0x8057c30, pool=0x8055c28, commands=0x804ec60,
> baton=0xbffff000)
>     at subversion/libsvn_ra_svn/marshal.c:766
> #26 0x0804e222 in serve (conn=0x8057c30,
> root=0x804e612 "/", tunnel=0, read_only=0,
> pool=0x8055c28) at subversion/svnserve/serve.c:1122
> #27 0x0804ae4a in main (argc=2, argv=0xbffff274) at
> subversion/svnserve/main.c:395
> #28 0x42015704 in __libc_start_main () from
> /lib/tls/libc.so.6

-- 
Philip Martin

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

Re: svnserve hang on SMP

Posted by root <eb...@yahoo.com>.
Philip -- thx for that.  svnserve spawns two child
processes when the client does a checkout.  I ran gdb
backtrace on both (output below).  This particular
repository just contains .jpeg images -- but the
problem happens on any of my repositories that are
exceptionally large.  It seems both pids are doing:

readbuf_input and writebuf_output at which point the
code jumps to 0xffffe002 for both of them, and then
gets stuck.  

Any ideas on what might be happening here?

Thanks for any and all help.

Regards,
Davis







[root@kafka dford]# gdb -p 2997
GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General
Public License, and you are
welcome to change it and/or distribute copies of it
under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show
warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu".
Attaching to process 2997
Reading symbols from
/usr/local/bin/svnserve.bin...done.
Reading symbols from
/usr/local/lib/libsvn_repos-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_repos-1.so.0
Reading symbols from
/usr/local/lib/libsvn_fs-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_fs-1.so.0
Reading symbols from
/usr/local/lib/libsvn_delta-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_delta-1.so.0
Reading symbols from
/usr/local/lib/libsvn_subr-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_subr-1.so.0
Reading symbols from
/usr/local/lib/libsvn_ra_svn-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_ra_svn-1.so.0
Reading symbols from
/usr/local/apache2/lib/libaprutil-0.so.0...done.
Loaded symbols for
/usr/local/apache2/lib/libaprutil-0.so.0
Reading symbols from /usr/lib/libgdbm.so.2...done.
Loaded symbols for /usr/lib/libgdbm.so.2
Reading symbols from /lib/libdb-4.0.so...done.
Loaded symbols for /lib/libdb-4.0.so
Reading symbols from /lib/tls/libpthread.so.0...done.
[New Thread 1075969248 (LWP 2997)]
Loaded symbols for /lib/tls/libpthread.so.0
Reading symbols from /usr/lib/libexpat.so.0...done.
Loaded symbols for /usr/lib/libexpat.so.0
Reading symbols from
/usr/local/apache2/lib/libapr-0.so.0...done.
Loaded symbols for
/usr/local/apache2/lib/libapr-0.so.0
Reading symbols from /lib/tls/librt.so.1...done.
Loaded symbols for /lib/tls/librt.so.1
Reading symbols from /lib/tls/libm.so.6...done.
Loaded symbols for /lib/tls/libm.so.6
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
---Type <return> to continue, or q <return> to quit---
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/tls/libc.so.6...done.
Loaded symbols for /lib/tls/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
0xffffe002 in ?? ()
(gdb) bt
#0  0xffffe002 in ?? ()
#1  0x4007dd98 in readbuf_input (conn=0x8057c30,
data=0x8057c40 "( check-path ( 0: ( 1 ) ) ) or ) )
168.1.10/svn/pictures ) ", len=0xbfffeed0)
    at subversion/libsvn_ra_svn/marshal.c:243
#2  0x4007dedf in readbuf_fill (conn=0x8057c30,
pool=0x80641d0) at
subversion/libsvn_ra_svn/marshal.c:264
#3  0x4007df4b in readbuf_getchar (conn=0x8057c30,
pool=0x80641d0, result=0xbfffef3f "@L\e\b@
P\001@x�����\a@0|\005\b�A\006\bl�����\a@")
    at subversion/libsvn_ra_svn/marshal.c:274
#4  0x4007df99 in readbuf_getchar_skip_whitespace
(conn=0x8057c30, pool=0x80641d0, result=0xbfffef3f
"@L\e\b@ P\001@x�����\a@0|\005\b�A\006\bl�����\a@")
    at subversion/libsvn_ra_svn/marshal.c:284
#5  0x4007eb6c in svn_ra_svn_read_item
(conn=0x8057c30, pool=0x80641d0, item=0xbfffef6c) at
subversion/libsvn_ra_svn/marshal.c:570
#6  0x4007efd3 in svn_ra_svn_read_tuple
(conn=0x8057c30, pool=0x80641d0, fmt=0x40080798 "wl")
at subversion/libsvn_ra_svn/marshal.c:687
#7  0x4007f2de in svn_ra_svn_handle_commands
(conn=0x8057c30, pool=0x8055c28, commands=0x804ec60,
baton=0xbffff000)
    at subversion/libsvn_ra_svn/marshal.c:759
#8  0x0804e222 in serve (conn=0x8057c30,
root=0x804e612 "/", tunnel=0, read_only=0,
pool=0x8055c28) at subversion/svnserve/serve.c:1122
#9  0x0804ae4a in main (argc=2, argv=0xbffff274) at
subversion/svnserve/main.c:395
#10 0x42015704 in __libc_start_main () from
/lib/tls/libc.so.6



[root@kafka dford]# gdb -p 2998
GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General
Public License, and you are
welcome to change it and/or distribute copies of it
under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show
warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu".
Attaching to process 2998
Reading symbols from
/usr/local/bin/svnserve.bin...done.
Reading symbols from
/usr/local/lib/libsvn_repos-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_repos-1.so.0
Reading symbols from
/usr/local/lib/libsvn_fs-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_fs-1.so.0
Reading symbols from
/usr/local/lib/libsvn_delta-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_delta-1.so.0
Reading symbols from
/usr/local/lib/libsvn_subr-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_subr-1.so.0
Reading symbols from
/usr/local/lib/libsvn_ra_svn-1.so.0...done.
Loaded symbols for /usr/local/lib/libsvn_ra_svn-1.so.0
Reading symbols from
/usr/local/apache2/lib/libaprutil-0.so.0...done.
Loaded symbols for
/usr/local/apache2/lib/libaprutil-0.so.0
Reading symbols from /usr/lib/libgdbm.so.2...done.
Loaded symbols for /usr/lib/libgdbm.so.2
Reading symbols from /lib/libdb-4.0.so...done.
Loaded symbols for /lib/libdb-4.0.so
Reading symbols from /lib/tls/libpthread.so.0...done.
[New Thread 1075969248 (LWP 2998)]
Loaded symbols for /lib/tls/libpthread.so.0
Reading symbols from /usr/lib/libexpat.so.0...done.
Loaded symbols for /usr/lib/libexpat.so.0
Reading symbols from
/usr/local/apache2/lib/libapr-0.so.0...done.
Loaded symbols for
/usr/local/apache2/lib/libapr-0.so.0
Reading symbols from /lib/tls/librt.so.1...done.
Loaded symbols for /lib/tls/librt.so.1
Reading symbols from /lib/tls/libm.so.6...done.
Loaded symbols for /lib/tls/libm.so.6
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
---Type <return> to continue, or q <return> to quit---
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/tls/libc.so.6...done.
Loaded symbols for /lib/tls/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
0xffffe002 in ?? ()
(gdb) bt
#0  0xffffe002 in ?? ()
#1  0x4007da5f in writebuf_output (conn=0x8057c30,
pool=0x8275b30,
    data=0x40e804e0 "��Z2%
\t�\002J\230\b�L��\232\215���\227:��qp\237�?�n�rsұ�\223��4\003�\002{�\217O��-�9�\006k��A\037\231c������?\220����E��C\233�\"C�\177��",
len=95311) at subversion/libsvn_ra_svn/marshal.c:155
#2  0x4007dc30 in writebuf_write (conn=0x8057c30,
pool=0x8275b30,
    data=0x40e804e0 "��Z2%
\t�\002J\230\b�L��\232\215���\227:��qp\237�?�n�rsұ�\223��4\003�\002{�\217O��-�9�\006k��A\037\231c������?\220����E��C\233�\"C�\177��",
len=96527) at subversion/libsvn_ra_svn/marshal.c:200
#3  0x4007e2be in svn_ra_svn_write_string
(conn=0x8057c30, pool=0x8275b30, str=0xbfffe8f0) at
subversion/libsvn_ra_svn/marshal.c:367
#4  0x4007e563 in vwrite_tuple (conn=0x8057c30,
pool=0x8275b30, fmt=0x40080330 "s", ap=0xbfffe8d8
"����-�\a@\020=(\b�\017")
    at subversion/libsvn_ra_svn/marshal.c:429
#5  0x4007f4f1 in svn_ra_svn_write_cmd
(conn=0x8057c30, pool=0x8275b30, cmdname=0x40080332
"textdelta-chunk", fmt=0x4008032f "cs")
    at subversion/libsvn_ra_svn/marshal.c:800
#6  0x4007bd9b in ra_svn_svndiff_handler
(baton=0x8275c08, data=0x40e80020 "����",
len=0xbfffe950) at
subversion/libsvn_ra_svn/editorp.c:252
#7  0x400652c7 in svn_stream_write (stream=0x40df5040,
data=0x40e80020 "����", len=0xbfffe950) at
subversion/libsvn_subr/stream.c:105
#8  0x4004ee41 in window_handler (window=0x82c2e50,
baton=0x827bbc0) at
subversion/libsvn_delta/svndiff.c:181
#9  0x4005086a in svn_txdelta_send_txstream
(txstream=0x8277c80, handler=0x4004ead3
<window_handler>, handler_baton=0x827bbc0,
pool=0x8277b78)
    at subversion/libsvn_delta/text_delta.c:601
#10 0x4001c369 in send_text_delta (c=0xbfffed90,
file_baton=0x8275c08, base_checksum=0x0,
delta_stream=0x8277c80, pool=0x8277b78)
    at subversion/libsvn_repos/delta.c:590
#11 0x4001c87c in delta_files (c=0xbfffed90,
file_baton=0x8275c08, source_path=0x0,
target_path=0x8275b68 "2001/Honeymoon/Spring Bay
02.jpg",
    pool=0x8275b30) at
subversion/libsvn_repos/delta.c:746
#12 0x4001ca63 in add_file_or_dir (c=0xbfffed90,
dir_baton=0x81d37e0, target_path=0x8275b68
"2001/Honeymoon/Spring Bay 02.jpg",
    edit_path=0x8275b90 "2001/Honeymoon/Spring Bay
02.jpg", tgt_kind=svn_node_file, pool=0x8275b30) at
subversion/libsvn_repos/delta.c:817
---Type <return> to continue, or q <return> to quit---
#13 0x4001d092 in delta_dirs (c=0xbfffed90,
dir_baton=0x81d37e0, source_path=0x0,
target_path=0x81d3780 "2001/Honeymoon",
    edit_path=0x81d3790 "2001/Honeymoon",
pool=0x81d3748) at
subversion/libsvn_repos/delta.c:1015
#14 0x4001c9d3 in add_file_or_dir (c=0xbfffed90,
dir_baton=0x80934d8, target_path=0x81d3780
"2001/Honeymoon", edit_path=0x81d3790
"2001/Honeymoon",
    tgt_kind=svn_node_dir, pool=0x81d3748) at
subversion/libsvn_repos/delta.c:806
#15 0x4001d092 in delta_dirs (c=0xbfffed90,
dir_baton=0x80934d8, source_path=0x0,
target_path=0x8093498 "2001", edit_path=0x80934a0
"2001",
    pool=0x8093460) at
subversion/libsvn_repos/delta.c:1015
#16 0x4001c9d3 in add_file_or_dir (c=0xbfffed90,
dir_baton=0x8064570, target_path=0x8093498 "2001",
edit_path=0x80934a0 "2001", tgt_kind=svn_node_dir,
    pool=0x8093460) at
subversion/libsvn_repos/delta.c:806
#17 0x4001d092 in delta_dirs (c=0xbfffed90,
dir_baton=0x8064570, source_path=0x8064468 "",
target_path=0x8064460 "", edit_path=0x400252eb "",
    pool=0x8064188) at
subversion/libsvn_repos/delta.c:1015
#18 0x4001be0e in svn_repos_dir_delta
(src_root=0x80709a8, src_parent_dir=0x80643c8 "",
src_entry=0x80643d0 "", tgt_root=0x8076bd0,
    tgt_fullpath=0x8064460 "", editor=0x8064320,
edit_baton=0x8064360, authz_read_func=0,
authz_read_baton=0x0, text_deltas=1, recurse=1,
entry_props=1,
    ignore_ancestry=0, pool=0x8064188) at
subversion/libsvn_repos/delta.c:357
#19 0x4002330f in finish_report
(report_baton=0x8064378, pool=0x8066190) at
subversion/libsvn_repos/reporter.c:484
#20 0x40023353 in svn_repos_finish_report
(report_baton=0x8064378, pool=0x8066190) at
subversion/libsvn_repos/reporter.c:495
#21 0x0804b938 in finish_report (conn=0x8057c30,
pool=0x8066190, params=0x8066250, baton=0xbfffef10) at
subversion/svnserve/serve.c:293
#22 0x4007f386 in svn_ra_svn_handle_commands
(conn=0x8057c30, pool=0x8064188, commands=0x804ea60,
baton=0xbfffef10)
    at subversion/libsvn_ra_svn/marshal.c:766
#23 0x0804ba4d in accept_report (conn=0x8057c30,
pool=0x8064188, b=0xbffff000, rev=1, target=0x80642a0
"", tgt_path=0x0, text_deltas=1, recurse=1,
    ignore_ancestry=0) at
subversion/svnserve/serve.c:344
#24 0x0804d0aa in update (conn=0x8057c30,
pool=0x8064188, params=0x8064238, baton=0xbffff000) at
subversion/svnserve/serve.c:757
#25 0x4007f386 in svn_ra_svn_handle_commands
(conn=0x8057c30, pool=0x8055c28, commands=0x804ec60,
baton=0xbffff000)
    at subversion/libsvn_ra_svn/marshal.c:766
---Type <return> to continue, or q <return> to quit---
#26 0x0804e222 in serve (conn=0x8057c30,
root=0x804e612 "/", tunnel=0, read_only=0,
pool=0x8055c28) at subversion/svnserve/serve.c:1122
#27 0x0804ae4a in main (argc=2, argv=0xbffff274) at
subversion/svnserve/main.c:395
#28 0x42015704 in __libc_start_main () from
/lib/tls/libc.so.6



--- Philip Martin <ph...@codematters.co.uk> wrote:
> root <eb...@yahoo.com> writes:
> 
> > I tried to run svnserve -d and then attach gdb to
> the
> > process.  
> 
> On Unix svnserve will use fork.  Are you attaching
> gdb to the forked
> child or the the listening parent?   You probably
> want the child:
> 
> Server:  $ svnserve -d ...
>          $ ps ax              # note svnserve ID
> 
> Client:  $ svn co svn://...   # wait for hang
> 
> Server:  $ ps ax              # note ID of new
> svnserve process
>          $ gdb -p newID
>          (gdb)  bt
> 
> -- 
> Philip Martin
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail:
> dev-help@subversion.tigris.org
> 


__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free web site building tool. Try it!
http://webhosting.yahoo.com/ps/sb/

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

Re: svnserve hang on SMP

Posted by Philip Martin <ph...@codematters.co.uk>.
root <eb...@yahoo.com> writes:

> I tried to run svnserve -d and then attach gdb to the
> process.  

On Unix svnserve will use fork.  Are you attaching gdb to the forked
child or the the listening parent?   You probably want the child:

Server:  $ svnserve -d ...
         $ ps ax              # note svnserve ID

Client:  $ svn co svn://...   # wait for hang

Server:  $ ps ax              # note ID of new svnserve process
         $ gdb -p newID
         (gdb)  bt

-- 
Philip Martin

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

Re: svnserve hang on SMP

Posted by root <eb...@yahoo.com>.
One further piece of information.  I tried running the
stress test stress.pl on this repository.

The result was as follows:

...huge list of all the files it checked out...

Checked out revision 22.
Malformed UTF-8 character (unexpected end of string)
at ./stress.pl line 254, <FOO> line 9067.

...last line repeated multiple times, then...

Segmentation fault

However, I can't seem to find any core files that
relate to subversion -- a search of the entire
filesystems produces only:

/dev/core
/proc/sys/net/core
/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include/gnu/gcj/protocol/core
/usr/src/linux-2.4.20-28.9/net/core
/opt/j2sdk_nb/jwsdp-1.3/docs/api/javax/servlet/jsp/jstl/core



--- root <eb...@yahoo.com> wrote:
> Hi,
> 
> I have been trying to track down this problem for
> weeks.  
> 
> Problem: On a large repository with mostly binary
> files, doing a checkout from a network client will
> hang in the middle of the checkot.  This happens
> using
> svn:// svn+ssh:// and https:// (regardless of
> protocol).  This does not happen with file:///
> 
> The server is the following:
> 
> Linux kafka.localdomain 2.4.20-28.9smp #1 SMP Thu
> Dec
> 18 13:37:36 EST 2003 i686 i686 i386 GNU/Linux
> (RedHat
> 9)
> 
> svn, version 0.36.0 (dev build)
>    compiled Jan 23 2004, 09:46:28
> 
> The following repository access (RA) modules are
> available:
> 
> * ra_dav : Module for accessing a repository via
> WebDAV (DeltaV) protocol.
>   - handles 'http' schema
> * ra_local : Module for accessing a repository on
> local disk.
>   - handles 'file' schema
> * ra_svn : Module for accessing a repository using
> the
> svn network protocol.
>   - handles 'svn' schema
> 
> apr-0.9.4-0.1
> apr-util-0.9.4-0.1
> berkeley-db-4.2.52
> neon-0.24.3-1
> openssl-0.9.7a-20
> zlib-1.1.4-8
> 
> The client is the following (note problem occurs
> with
> svn cmd line tools also):
> 
> TortoiseSVN 0.24.0, Build 554, UNICODE
> Subversion 0.35.1, dev build
> apr 0.9.5
> apr-iconv 0.9.5
> apr-utils 0.9.5
> berkeley db 4.2.52
> neon 0.24
> OpenSSL 0.9.7c 30 Sep 2003
> zlib 1.2.1
> 
> I have compiled subversion with
> --enable-maintainer-mode.  When the problem occurs
> (hang) there is no output to stdout.  I do not
> believe
> that this is a permissions problem.  I have a
> wrapper
> script that sets umask on svnserve binary.  I am the
> only one accessing this repository.  When it hangs,
> the steps I take are:
> 
> Kill the client; see that the svnserve process exits
> successfully on the server via ps command.  
> 
> svnadmin recover..
> 
> fix the permissions, if necessary.  
> 
> From the client, do an update, it will start
> continuing where it left off, but again it will hang
> half-way through.
> 
> I tried to run svnserve -d and then attach gdb to
> the
> process.  
> 
> Unfortunately, I'm not that familiar with the code,
> and I really don't know where to set breakpoints to
> see anything useful.  I am hoping someone on this
> list
> can help me track it down by making suggestions on
> where to look in gdb.  If I just do:
> 
> (gdb) continue
> 
> It runs - and my client connects, and then it hangs
> as
> usual through a checkout (typically after
> downloading
> a number of repository files first)...then I have to
> CTRL-C in gdb, and if I do 
> 
> (gdb) backtrace
> #0  0xffffe002 in ?? ()
> #1  0x0804aca7 in main (argc=2, argv=0xbfffef84) at
> subversion/svnserve/main.c:353
> #2  0x42015704 in __libc_start_main () from
> /lib/tls/libc.so.6
> 
> Which doesn't seem to useful.  Not being an expert
> with gdb, or the source code, can someone tell me
> where some useful places would be to place
> breakpoints
> to try to narrow down where it is getting stuck?
> 
> With an SMP machine and also the fact that it seems
> the subversion code uses threads, any help is
> appreciated in tracking down this issue.
> 
> Thanks in advance,
> Davis
> 
> 
> 
> 
> 
> 
> __________________________________
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free web site building tool.
> Try it!
> http://webhosting.yahoo.com/ps/sb/
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail:
> dev-help@subversion.tigris.org
> 


__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free web site building tool. Try it!
http://webhosting.yahoo.com/ps/sb/

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