http://subversion.tigris.org/issues/show_bug.cgi?id=2935
------- Additional comments from prez tigris.org Mon Oct 22
11:16:09 -0700 2007 -------
I found how to fix it.
The root of the problem seems to be that the bdb_env_baton_t
structure when
created assigns the pointer error_info using get_error_info.
This is fine,
except that get_error_info uses thread-specific storage, so
the returned pointer
is specific to a single thread. However it appears the
bdb_env_baton_t
structure is NOT thread specific. So if the error_info
pointer is accessed from
a different thread, you have an instant core dump.
The simple solution was to remove the error_info pointer
from bdb_env_baton_t,
and instead just use get_error_info() each time to look it
up on a per-thread
basis. This could probably be done more elegently
(especially since I sometimes
do this twice in row, rather than assigning it to a
temporary pointer and use
that pointer twice). However it DOES now work.
My apache is no longer core dumping. Please fold something
based off this patch
into the next release, and everything should be shiny
------------------------------------------------------------
---------
To unsubscribe, e-mail: issues-unsubscribe subversion.tigris.org
For additional commands, e-mail: issues-help subversion.tigris.org
|