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

First httpd deadlock fixed, but found another one

From: Brandon Ehle <azverkan_at_yahoo.com>
Date: 2002-12-10 16:03:54 CET

>
>
>You didn't say what your tests do, so it's going to be hard for us to
>identify which process crashed :) You are really the only one who can
>do that.
>
>
My tests run through a import, checkout, status, status -u, & update (in
that order), while steadily increasing the amount of files. It does
this once via ra_local, then it does the same thing over ra_dav and
reports the difference in time.

The last deadlock that I posted seems to have gone away when I followed
Justin Ererkrantz's advice and update to DB4.1. With DB4.1 mod_dav_svn
is much more stable and can handle much more load than DB4.0 could.

I had previously thought that all the deadlocks were fixed, but I've
uncovered another one. Although subversion never failed any of the
operations, httpd is deadlocking when attempting to shut it down. This
happened after runnning the import, checkout, status, status -u, &
update commands on a working copy containing 8333 files. The previous
run where it threw 6666 files at mod_dav_svn worked fine and it also
worked with 8333 files over ra_local.

Here is the backtrace of the threads in apache, note that this is the
backtrace after some of the other threads have exited.

(gdb) thread apply all bt

Thread 4 (Thread 139282 (LWP 24116)):
#0 0x401f4ae9 in __memp_fopen_int () from /lib/libdb-4.1.so
#1 0x401f45b4 in __memp_fopen () from /lib/libdb-4.1.so
#2 0x401a1101 in __db_dbenv_setup () from /lib/libdb-4.1.so
#3 0x401b3bf6 in __db_dbopen () from /lib/libdb-4.1.so
#4 0x401b391f in __db_open () from /lib/libdb-4.1.so
#5 0x40408ce5 in svn_fs__open_nodes_table () from
/root/rpms/build/subversion/subversion/libsvn_fs/.libs/libsvn_fs-1.so.0
#6 0x4040f8b3 in svn_fs_open_berkeley () from
/root/rpms/build/subversion/subversion/libsvn_fs/.libs/libsvn_fs-1.so.0
#7 0x403fcb77 in get_repos () from
/root/rpms/build/subversion/subversion/libsvn_repos/.libs/libsvn_repos-1.so.0
#8 0x403fccd5 in svn_repos_open () from
/root/rpms/build/subversion/subversion/libsvn_repos/.libs/libsvn_repos-1.so.0
#9 0x403e6b9a in dav_svn_get_resource () from
/etc/httpd/modules/mod_dav_svn.so
#10 0x4031aa4a in dav_get_resource () from /etc/httpd/modules/mod_dav.so
#11 0x4031aeaf in dav_method_put () from /etc/httpd/modules/mod_dav.so
#12 0x080684d5 in ap_run_handler ()
#13 0x08068aed in ap_invoke_handler ()
#14 0x080636a6 in ap_process_request ()
#15 0x0805ecac in ap_process_http_connection ()
#16 0x08071b65 in ap_run_process_connection ()
#17 0x08064b7c in process_socket ()
#18 0x0806532d in worker_thread ()
#19 0x4025cb06 in dummy_worker () from /usr/lib/libapr-0.so.0
#20 0x402d3941 in pthread_start_thread () from /lib/i686/libpthread.so.0

Thread 3 (Thread 131089 (LWP 24114)):
#0 0x420d3b2e in select () from /lib/i686/libc.so.6
#1 0x402254a0 in __JCR_LIST__ () from /lib/libdb-4.1.so
#2 0x401fb191 in __os_yield () from /lib/libdb-4.1.so
#3 0x401773bf in __db_tas_mutex_lock () from /lib/libdb-4.1.so
#4 0x401f8d6f in __memp_sync_files () from /lib/libdb-4.1.so
#5 0x401f86ec in __memp_sync_int () from /lib/libdb-4.1.so
#6 0x401f8182 in __memp_sync () from /lib/libdb-4.1.so
#7 0x4020f3af in __txn_checkpoint () from /lib/libdb-4.1.so
#8 0x4040f052 in cleanup_fs () from
/root/rpms/build/subversion/subversion/libsvn_fs/.libs/libsvn_fs-1.so.0
#9 0x4040f108 in cleanup_fs_apr () from
/root/rpms/build/subversion/subversion/libsvn_fs/.libs/libsvn_fs-1.so.0
#10 0x40261dfd in run_cleanups () from /usr/lib/libapr-0.so.0
#11 0x4026154d in apr_pool_destroy () from /usr/lib/libapr-0.so.0
#12 0x40261608 in apr_pool_destroy () from /usr/lib/libapr-0.so.0
#13 0x40261508 in apr_pool_clear () from /usr/lib/libapr-0.so.0
#14 0x0806534a in worker_thread ()
#15 0x4025cb06 in dummy_worker () from /usr/lib/libapr-0.so.0
#16 0x402d3941 in pthread_start_thread () from /lib/i686/libpthread.so.0

Thread 2 (Thread 16385 (LWP 24082)):
#0 0x420d224b in poll () from /lib/i686/libc.so.6
#1 0x402d2d9e in __pthread_manager () from /lib/i686/libpthread.so.0

Thread 1 (Thread 8192 (LWP 24080)):
#0 0x42028d69 in sigsuspend () from /lib/i686/libc.so.6
#1 0x402d5108 in __pthread_wait_for_restart_signal () from
/lib/i686/libpthread.so.0
#2 0x402d2911 in pthread_join () from /lib/i686/libpthread.so.0
#3 0x4025ccbe in apr_thread_join () from /usr/lib/libapr-0.so.0
#4 0x08065903 in join_workers ()
#5 0x08065c75 in child_main ()
#6 0x08065ea3 in make_child ()
#7 0x08065f09 in startup_children ()
#8 0x0806693a in ap_mpm_run ()
#9 0x0806d6af in main ()
#10 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Dec 10 16:02:15 2002

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.