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

Re: First httpd deadlock fixed, but found another one

From: Philip Martin <philip_at_codematters.co.uk>
Date: 2002-12-10 16:39:52 CET

Brandon Ehle <azverkan@yahoo.com> writes:

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

Do you really think Apache shutdown caused the problem? Thread 4
appears to be blocked processing a dav_method_put request, which
doesn't sound like something that would be invoked by shutdown. I
think it is more likely a killed process caused the deadlock sometime
earlier, and you only noticed it when the shutdown blocked. It looks
like the same problem you reported before, just observed at a
different place.

Did you do as I suggest and check your Apache and system logs for
killed proceses? It's quite possible that 8333 files is pushing
Apache over a memory limit.

Does your test verify that the operations it runs do in fact succeed?

If you want to get more useful stack traces build Subversion and
Apache with debug information, i.e. add -g to the CFLAGS.

> (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 ()

Isn't this thread still processing a request? One that would have
been generated by your test? Or did you fail to mention some other
process that accesses the repository?

> #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

-- 
Philip Martin
---------------------------------------------------------------------
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:40:42 2002

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