The FSFS locking fix comes in three logical parts:
(1) Cache the uuid in memory (in FSFS) for technical reasons.
(2) Add the serialized_init machinery to the FS loader library, and
use it in the FSFS back end to serialize access to the write
lock.
(3) Add the svn_fs_initialize() API and calls to it. If it is not
used, libsvn_fs makes a best-effort fallback which (a) leaks a
little heap memory if the svn libraries are unloaded, and (b)
could, if one is very unlucky, fail to serialize accesses to the
write lock.
The third part is proving troublesome; client programs like the "svn"
command-line client need to invoke it in case they use ra_local, but
they may not be linked against libsvn_fs if --enable-dso is used. The
solution will involve adding an svn_ra_initialize() for client
programs to use, and that will take some time and a little design
work.
I have already created a backport branch for 1.1 which adds parts (1)
and (2) without part (3), and simply uses the best-effort fallback all
the time. I would like to take the same strategy for 1.2, so that the
locking fix doesn't interfere so much with the 1.2 release schedule.
For all practical purposes, the best-effort fallback should be fine,
and I think the fix is much less disruptive without the new API.
Unfortunately, the logical parts do not map directly to commits. The
commits involved so far are:
r14063: Cache uuid in memory
r14066: Add serialized_init machinery, svn_fs_initialize() API,
and best-effort fallback
r14067: Add calls to svn_fs_initialize()
r14068: Fix error-handling bug in r14066
r14079: Fix memory leak in r14066
r14121: Add explanatory comment
r14124: Localize error strings and allow multiple
svn_fs_initialize() calls
So the 1.2 backport branch would include r14063, r14066 minus the new
API, r14068, r14079, r14121, and r14124 minus the part applying to
svn_fs_initialize().
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Apr 12 21:29:40 2005