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

Re: svnserve hang on SMP

From: Philip Martin <philip_at_codematters.co.uk>
Date: 2004-01-27 23:40:01 CET

root <ebay_101011_0x2b@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\bA\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\bA\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\bL\232\215\227:qp\237?nrsұ\2234\003\002{\217O-9\006kA\037\231c?\220EC\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\bL\232\215\227:qp\237?nrsұ\2234\003\002{\217O-9\006kA\037\231c?\220EC\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
Received on Tue Jan 27 23:42:08 2004

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