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

Repository deadlock using stress.pl

From: Philip Martin <philip_at_codematters.co.uk>
Date: 2003-10-02 22:58:13 CEST

Hi

I currently have four stress.pl scripts that appear to have deadlocked
during commit. All four were running over ra_local on a dual PIII
Linux machine, I am running Subversion HEAD, apr 2.0.47, BDB 4.1.25.
The repository itself (which has 885 revisions) appears to have
deadlocked, as an 'svn ls' process has also blocked.

The four commits are blocked at

(gdb) bt
#0 0x404ef7ee in select () from /lib/libc.so.6
#1 0x401b83fc in db_xa_switch_4001 () from /usr/lib/libdb-4.1.so
#2 0x4019238a in __os_yield_4001 () from /usr/lib/libdb-4.1.so
#3 0x40120974 in __db_tas_mutex_lock_4001 () from /usr/lib/libdb-4.1.so
#4 0x4018d500 in __memp_fclose_int_4001 () from /usr/lib/libdb-4.1.so
#5 0x4018d2ef in __memp_fopen_int_4001 () from /usr/lib/libdb-4.1.so
#6 0x40145ab6 in __db_refresh_4001 () from /usr/lib/libdb-4.1.so
#7 0x4014563c in __db_close_i_4001 () from /usr/lib/libdb-4.1.so
#8 0x401455eb in __db_close_4001 () from /usr/lib/libdb-4.1.so
#9 0x4008d7b7 in cleanup_fs_db (fs=0x8093ab8, db_ptr=0x8093ae0,
    name=0x4009f8d9 "uuids") at ../svn/subversion/libsvn_fs/fs.c:128
#10 0x4008d9a5 in cleanup_fs (fs=0x8093ab8)
    at ../svn/subversion/libsvn_fs/fs.c:164
#11 0x4008da36 in cleanup_fs_apr (data=0x8093ab8)
    at ../svn/subversion/libsvn_fs/fs.c:268
#12 0x401f5c8d in run_cleanups (cref=0x8093a90) at apr_pools.c:1979
#13 0x401f53cd in apr_pool_destroy (pool=0x8093a80) at apr_pools.c:755
#14 0x401f5488 in apr_pool_destroy (pool=0x80615e0) at apr_pools.c:752
#15 0x0804f855 in main (argc=5, argv=0xbffffbe4)
    at ../svn/subversion/clients/cmdline/main.c:1124

(gdb) bt
#0 0x404ef7ee in select () from /lib/libc.so.6
#1 0x401b83fc in db_xa_switch_4001 () from /usr/lib/libdb-4.1.so
#2 0x4019238a in __os_yield_4001 () from /usr/lib/libdb-4.1.so
#3 0x40120974 in __db_tas_mutex_lock_4001 () from /usr/lib/libdb-4.1.so
#4 0x4018b7ff in __memp_bhfree_4001 () from /usr/lib/libdb-4.1.so
#5 0x4018ab2f in __memp_alloc_4001 () from /usr/lib/libdb-4.1.so
#6 0x4018beeb in __memp_fget_4001 () from /usr/lib/libdb-4.1.so
#7 0x40139e03 in __bam_search_4001 () from /usr/lib/libdb-4.1.so
#8 0x40131176 in __bam_c_rget_4001 () from /usr/lib/libdb-4.1.so
#9 0x4012e5d5 in __bam_c_dup_4001 () from /usr/lib/libdb-4.1.so
#10 0x4014c210 in __db_c_get_4001 () from /usr/lib/libdb-4.1.so
#11 0x40146b75 in __db_get_4001 () from /usr/lib/libdb-4.1.so
#12 0x40086c20 in svn_fs__bdb_get_node_revision (noderev_p=0xbffff410,
    fs=0x8093ab8, id=0x80e4f18, trail=0x80a0108)
    at ../svn/subversion/libsvn_fs/bdb/nodes-table.c:201
#13 0x40089969 in get_node_revision (noderev_p=0xbffff438, node=0x80e4f00,
    trail=0x80a0108) at ../svn/subversion/libsvn_fs/dag.c:219
#14 0x40089afa in svn_fs__dag_get_node (node=0xbffff47c, fs=0x8093ab8,
    id=0x80e4ec8, trail=0x80a0108) at ../svn/subversion/libsvn_fs/dag.c:269
#15 0x40089ccc in svn_fs__dag_walk_predecessors (node=0x80afaa8,
    callback=0x4008cd43 <is_ancestor_callback>, baton=0xbffff4b0,
    trail=0x80a0108) at ../svn/subversion/libsvn_fs/dag.c:343
#16 0x4008ce35 in svn_fs__dag_is_ancestor (is_ancestor=0xbffff548,
    node1=0x80af920, node2=0x80afaa8, trail=0x80a0108)
    at ../svn/subversion/libsvn_fs/dag.c:1759
#17 0x40095d62 in id_check_ancestor (is_ancestor=0xbffff548, fs=0x8093ab8,
    id1=0x80af850, id2=0x80af348, trail=0x80a0108)
    at ../svn/subversion/libsvn_fs/tree.c:1678
#18 0x400964e5 in merge (conflict_p=0x80a00f8, target_path=0x400a0c47 "/",
    target=0x80ae0a0, source=0x80b7d90, ancestor=0x80ae4d0,
    txn_id=0x8098bd8 "2yn", trail=0x80a0108)
    at ../svn/subversion/libsvn_fs/tree.c:2039
#19 0x40096e53 in txn_body_merge (baton=0xbffff670, trail=0x80a0108)
    at ../svn/subversion/libsvn_fs/tree.c:2371
#20 0x400936c9 in svn_fs__retry (fs=0x8093ab8,
    txn_body=0x40096cbc <txn_body_merge>, baton=0xbffff670, use_txn=1,
    pool=0x809fe20) at ../svn/subversion/libsvn_fs/trail.c:227
#21 0x40097233 in svn_fs_commit_txn (conflict_p=0xbffff714,
    new_rev=0xbffff71c, txn=0x809fe58)
    at ../svn/subversion/libsvn_fs/tree.c:2546
#22 0x40072cbc in svn_repos_fs_commit_txn (conflict_p=0xbffff714,
    repos=0x809ec58, new_rev=0xbffff71c, txn=0x809fe58)
    at ../svn/subversion/libsvn_repos/fs-wrap.c:54
#23 0x4006f41b in close_edit (edit_baton=0x80b3d78, pool=0x80615e0)
    at ../svn/subversion/libsvn_repos/commit.c:529
#24 0x4001f47b in svn_client__do_commit (
    base_url=0x809e528 "file:///home/pm/sw/subversion/obj/subversion/tests/repostress/trunk", commit_items=0x809ded8, adm_access=0x808bf20, editor=0x809f2e8,
    edit_baton=0x80b3d78,
    notify_path_prefix=0x809f460 "/home/pm/sw/subversion/obj/subversion/tests", tempfiles=0xbffff868, ctx=0xbffffa94, pool=0x80615e0)
    at ../svn/subversion/libsvn_client/commit_util.c:1228
#25 0x4001cd99 in svn_client_commit (commit_info=0xbffff8d0,
    targets=0x8062f88, nonrecursive=0, ctx=0xbffffa94, pool=0x80615e0)
    at ../svn/subversion/libsvn_client/commit.c:935
#26 0x0804bc3e in svn_cl__commit (os=0x8061618, baton=0xbffff9a4,
    pool=0x80615e0) at ../svn/subversion/clients/cmdline/commit-cmd.c:99
#27 0x0804f784 in main (argc=5, argv=0xbffffbe4)
    at ../svn/subversion/clients/cmdline/main.c:1097

(gdb) bt
#0 0x404ef7ee in select () from /lib/libc.so.6
#1 0x401b83fc in db_xa_switch_4001 () from /usr/lib/libdb-4.1.so
#2 0x4019238a in __os_yield_4001 () from /usr/lib/libdb-4.1.so
#3 0x40120974 in __db_tas_mutex_lock_4001 () from /usr/lib/libdb-4.1.so
#4 0x4018188b in __lock_get_4001 () from /usr/lib/libdb-4.1.so
#5 0x401808ac in __lock_vec_4001 () from /usr/lib/libdb-4.1.so
#6 0x40154313 in __db_lget_4001 () from /usr/lib/libdb-4.1.so
#7 0x40139db7 in __bam_search_4001 () from /usr/lib/libdb-4.1.so
#8 0x40131176 in __bam_c_rget_4001 () from /usr/lib/libdb-4.1.so
#9 0x4012fcdd in __bam_bulk_duplicates_4001 () from /usr/lib/libdb-4.1.so
#10 0x4014d0e5 in __db_c_put_4001 () from /usr/lib/libdb-4.1.so
#11 0x40146e7b in __db_put_4001 () from /usr/lib/libdb-4.1.so
#12 0x40088b53 in svn_fs__bdb_put_txn (fs=0x8093ab8, txn=0xbffff520,
    txn_name=0x8098d58 "2yp", trail=0x80b4048)
    at ../svn/subversion/libsvn_fs/bdb/txn-table.c:93
#13 0x40088dc5 in svn_fs__bdb_create_txn (txn_name_p=0xbffff578, fs=0x8093ab8,
    root_id=0x8098c08, trail=0x80b4048)
    at ../svn/subversion/libsvn_fs/bdb/txn-table.c:154
#14 0x4009a094 in txn_body_begin_txn (baton=0xbffff610, trail=0x80b4048)
    at ../svn/subversion/libsvn_fs/txn.c:109
#15 0x400936c9 in svn_fs__retry (fs=0x8093ab8,
    txn_body=0x4009a022 <txn_body_begin_txn>, baton=0xbffff610, use_txn=1,
    pool=0x80b3d40) at ../svn/subversion/libsvn_fs/trail.c:227
#16 0x4009a155 in svn_fs_begin_txn (txn_p=0x80b3d9c, fs=0x8093ab8, rev=886,
    pool=0x80b3d40) at ../svn/subversion/libsvn_fs/txn.c:134
#17 0x40072d6a in svn_repos_fs_begin_txn_for_commit (txn_p=0x80b3d9c,
    repos=0x809ec68, rev=886, author=0x80b3db8 "pm",
    log_msg=0x80b3dc0 "Thu Oct 2 21:41:59 2003", pool=0x80b3d40)
    at ../svn/subversion/libsvn_repos/fs-wrap.c:78
#18 0x4006e7a5 in open_root (edit_baton=0x80b3d78, base_revision=-1,
    pool=0x80cbc70, root_baton=0xbffff710)
    at ../svn/subversion/libsvn_repos/commit.c:144
#19 0x400c58a5 in svn_delta_path_driver (editor=0x809f2f8,
    edit_baton=0x80b3d78, revision=-1, paths=0x809f560,
    callback_func=0x4001f09c <path_driver_cb_func>, callback_baton=0xbffff790,
    pool=0x80615e0) at ../svn/subversion/libsvn_delta/path_driver.c:173
#20 0x4001f24c in svn_client__do_commit (
    base_url=0x809e530 "file:///home/pm/sw/subversion/obj/subversion/tests/repostress/trunk", commit_items=0x809ded8, adm_access=0x808bf20, editor=0x809f2f8,
    edit_baton=0x80b3d78,
    notify_path_prefix=0x809f470 "/home/pm/sw/subversion/obj/subversion/tests", tempfiles=0xbffff868, ctx=0xbffffa94, pool=0x80615e0)
    at ../svn/subversion/libsvn_client/commit_util.c:1172
#21 0x4001cd99 in svn_client_commit (commit_info=0xbffff8d0,
    targets=0x8062f88, nonrecursive=0, ctx=0xbffffa94, pool=0x80615e0)
    at ../svn/subversion/libsvn_client/commit.c:935
#22 0x0804bc3e in svn_cl__commit (os=0x8061618, baton=0xbffff9a4,
    pool=0x80615e0) at ../svn/subversion/clients/cmdline/commit-cmd.c:99
#23 0x0804f784 in main (argc=5, argv=0xbffffbe4)
    at ../svn/subversion/clients/cmdline/main.c:1097

(gdb) bt
#0 0x404ef7ee in select () from /lib/libc.so.6
#1 0x401b83fc in db_xa_switch_4001 () from /usr/lib/libdb-4.1.so
#2 0x4019238a in __os_yield_4001 () from /usr/lib/libdb-4.1.so
#3 0x40120974 in __db_tas_mutex_lock_4001 () from /usr/lib/libdb-4.1.so
#4 0x4018188b in __lock_get_4001 () from /usr/lib/libdb-4.1.so
#5 0x401808ac in __lock_vec_4001 () from /usr/lib/libdb-4.1.so
#6 0x40154313 in __db_lget_4001 () from /usr/lib/libdb-4.1.so
#7 0x40139db7 in __bam_search_4001 () from /usr/lib/libdb-4.1.so
#8 0x40131176 in __bam_c_rget_4001 () from /usr/lib/libdb-4.1.so
#9 0x4012fcdd in __bam_bulk_duplicates_4001 () from /usr/lib/libdb-4.1.so
#10 0x4014d0e5 in __db_c_put_4001 () from /usr/lib/libdb-4.1.so
#11 0x40146e7b in __db_put_4001 () from /usr/lib/libdb-4.1.so
#12 0x40088380 in svn_fs__bdb_string_append (fs=0x8093ab8, key=0xbffff334,
    len=0, buf=0x400c8725 "", trail=0x80fad48)
    at ../svn/subversion/libsvn_fs/bdb/strings-table.c:330
#13 0x40091880 in write_svndiff_strings (baton=0xbffff330,
    data=0x400c8721 "SVN", len=0xbffff1c0)
    at ../svn/subversion/libsvn_fs/reps-strings.c:1288
#14 0x400de3de in svn_stream_write (stream=0x8107020, data=0x400c8721 "SVN",
    len=0xbffff1c0) at ../svn/subversion/libsvn_subr/stream.c:105
#15 0x400c5da2 in window_handler (window=0x81231a0, baton=0x810ad00)
    at ../svn/subversion/libsvn_delta/svndiff.c:118
#16 0x40091b45 in svn_fs__rep_deltify (fs=0x8093ab8, target=0x8106e60 "c4g",
    source=0x8106ff8 "c5z", trail=0x80fad48)
    at ../svn/subversion/libsvn_fs/reps-strings.c:1405
#17 0x4008cac6 in svn_fs__dag_deltify (target=0x8106cf0, source=0x8106e88,
    props_only=0, trail=0x80fad48) at ../svn/subversion/libsvn_fs/dag.c:1621
#18 0x40095789 in txn_body_txn_deltify (baton=0xbffff4a0, trail=0x80fad48)
    at ../svn/subversion/libsvn_fs/tree.c:1431
#19 0x400936c9 in svn_fs__retry (fs=0x8093ab8,
    txn_body=0x400956e2 <txn_body_txn_deltify>, baton=0xbffff4a0, use_txn=1,
    pool=0x80fac88) at ../svn/subversion/libsvn_fs/trail.c:227
#20 0x40095c3f in deltify_mutable (fs=0x8093ab8, root=0x80e8c78,
    path=0x80facc0 "/trunk/foo2", txn_id=0x80a00b8 "2yo", pool=0x80fac88)
    at ../svn/subversion/libsvn_fs/tree.c:1636
#21 0x40095a32 in deltify_mutable (fs=0x8093ab8, root=0x80e8c78,
    path=0x80e1c68 "/trunk", txn_id=0x80a00b8 "2yo", pool=0x80e1c30)
    at ../svn/subversion/libsvn_fs/tree.c:1536
#22 0x40095a32 in deltify_mutable (fs=0x8093ab8, root=0x80e8c78,
    path=0x400a0c47 "/", txn_id=0x80a00b8 "2yo", pool=0x809fe20)
    at ../svn/subversion/libsvn_fs/tree.c:1536
#23 0x40097396 in svn_fs_commit_txn (conflict_p=0xbffff714,
    new_rev=0xbffff71c, txn=0x809fe58)
    at ../svn/subversion/libsvn_fs/tree.c:2586
#24 0x40072cbc in svn_repos_fs_commit_txn (conflict_p=0xbffff714,
    repos=0x809ec68, new_rev=0xbffff71c, txn=0x809fe58)
    at ../svn/subversion/libsvn_repos/fs-wrap.c:54
#25 0x4006f41b in close_edit (edit_baton=0x80b3d78, pool=0x80615e0)
    at ../svn/subversion/libsvn_repos/commit.c:529
#26 0x4001f47b in svn_client__do_commit (
    base_url=0x809e530 "file:///home/pm/sw/subversion/obj/subversion/tests/repostress/trunk", commit_items=0x809ded8, adm_access=0x808bf20, editor=0x809f2f8,
    edit_baton=0x80b3d78,
    notify_path_prefix=0x809f470 "/home/pm/sw/subversion/obj/subversion/tests", tempfiles=0xbffff868, ctx=0xbffffa94, pool=0x80615e0)
    at ../svn/subversion/libsvn_client/commit_util.c:1228
#27 0x4001cd99 in svn_client_commit (commit_info=0xbffff8d0,
    targets=0x8062f88, nonrecursive=0, ctx=0xbffffa94, pool=0x80615e0)
    at ../svn/subversion/libsvn_client/commit.c:935
#28 0x0804bc3e in svn_cl__commit (os=0x8061618, baton=0xbffff9a4,
    pool=0x80615e0) at ../svn/subversion/clients/cmdline/commit-cmd.c:99
#29 0x0804f784 in main (argc=5, argv=0xbffffbe4)
    at ../svn/subversion/clients/cmdline/main.c:1097

The 'svn ls' process is blocked at

(gdb) bt
#0 0x404ef7ee in select () from /lib/libc.so.6
#1 0x401b83fc in db_xa_switch_4001 () from /usr/lib/libdb-4.1.so
#2 0x4019238a in __os_yield_4001 () from /usr/lib/libdb-4.1.so
#3 0x40120974 in __db_tas_mutex_lock_4001 () from /usr/lib/libdb-4.1.so
#4 0x4018188b in __lock_get_4001 () from /usr/lib/libdb-4.1.so
#5 0x401808ac in __lock_vec_4001 () from /usr/lib/libdb-4.1.so
#6 0x40154313 in __db_lget_4001 () from /usr/lib/libdb-4.1.so
#7 0x40139db7 in __bam_search_4001 () from /usr/lib/libdb-4.1.so
#8 0x40131176 in __bam_c_rget_4001 () from /usr/lib/libdb-4.1.so
#9 0x4012e5d5 in __bam_c_dup_4001 () from /usr/lib/libdb-4.1.so
#10 0x4014c210 in __db_c_get_4001 () from /usr/lib/libdb-4.1.so
#11 0x40146b75 in __db_get_4001 () from /usr/lib/libdb-4.1.so
#12 0x40088f39 in svn_fs__bdb_get_txn (txn_p=0xbffff5bc, fs=0x80952f8,
    txn_name=0x80a88c8 "2yo", trail=0x8088078)
    at ../svn/subversion/libsvn_fs/bdb/txn-table.c:199
#13 0x400924ff in get_rev_txn (txn_p=0xbffff5f0, txn_id=0x0, fs=0x80952f8,
    rev=886, trail=0x8088078) at ../svn/subversion/libsvn_fs/revs-txns.c:49
#14 0x4009259b in svn_fs__rev_get_root (root_id_p=0xbffff620, fs=0x80952f8,
    rev=886, trail=0x8088078) at ../svn/subversion/libsvn_fs/revs-txns.c:69
#15 0x4008ad78 in svn_fs__dag_revision_root (node_p=0xbffff64c, fs=0x80952f8,
    rev=886, trail=0x8088078) at ../svn/subversion/libsvn_fs/dag.c:789
#16 0x40093acd in txn_body_revision_root (baton=0xbffff6d0, trail=0x8088078)
    at ../svn/subversion/libsvn_fs/tree.c:238
#17 0x400936c9 in svn_fs__retry (fs=0x80952f8,
    txn_body=0x40093a8f <txn_body_revision_root>, baton=0xbffff6d0, use_txn=1,
    pool=0x80872e8) at ../svn/subversion/libsvn_fs/trail.c:227
#18 0x40093b8f in svn_fs_revision_root (root_p=0xbffff70c, fs=0x80952f8,
    rev=886, pool=0x80872e8) at ../svn/subversion/libsvn_fs/tree.c:260
#19 0x40068251 in svn_ra_local__do_check_path (kind=0xbffff770,
    session_baton=0x8087578, path=0x400319d7 "", revision=886, pool=0x80872e8)
    at ../svn/subversion/libsvn_ra_local/ra_plugin.c:559
#20 0x40028b72 in svn_client_ls (dirents=0xbffff7c0,
    path_or_url=0x80630b0 "file:///home/pm/sw/subversion/obj/subversion/tests/repostress", revision=0xbffff9a4, recurse=0, ctx=0xbffff984, pool=0x80872e8)
    at ../svn/subversion/libsvn_client/ls.c:111
#21 0x0804e4fc in svn_cl__ls (os=0x8061618, baton=0xbffff894, pool=0x80615e0)
    at ../svn/subversion/clients/cmdline/ls-cmd.c:151
#22 0x0804f784 in main (argc=3, argv=0xbffffad4)
    at ../svn/subversion/clients/cmdline/main.c:1097

-- 
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Oct 2 22:59:09 2003

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

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