stef...@apache.org writes: > Author: stefan2 > Date: Wed Sep 26 16:56:58 2012 > New Revision: 1390601 > > URL: http://svn.apache.org/viewvc?rev=1390601&view=rev > Log: > Some clients, e.g. our JAVA tests, indirectly allocate DAG nodes in pools > that live longer than the corresponding FS pool. These nodes become invalid > as soon as the FS gets destroyed, so it is fine to invalidate them together > with the FS. > > However, those pools will hold a locks on the DAG cache and will try to > release these locks long after the cache got destroyed. Therefore, we must > keep a list of all locking pools and revoke their locks unconditionally if > the cache gets destroyed.
The javahl tests are still crashing: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffff7fd9700 (LWP 11226)] 0x00007fffc6301ffc in unlock_cache (baton_void=0x7ffff4062550) at ../src/subversion/libsvn_fs_fs/tree.c:237 237 lock->cache->first_lock = lock->next; (gdb) bt #0 0x00007fffc6301ffc in unlock_cache (baton_void=0x7ffff4062550) at ../src/subversion/libsvn_fs_fs/tree.c:237 #1 0x00007fffc7201e08 in ?? () from /usr/lib/libapr-1.so.0 #2 0x00007fffc7200c1d in apr_pool_destroy () from /usr/lib/libapr-1.so.0 #3 0x00007fffc72021df in apr_pool_destroy_debug () from /usr/lib/libapr-1.so.0 #4 0x00007fffec08b3a6 in svn_client_update4 (result_revs=0x7ffff7fd6ff0, paths=0x7ffff40a1150, revision=0x7ffff7fd7140, depth=svn_depth_unknown, depth_is_sticky=0, ignore_externals=0, allow_unver_obstructions=0, adds_as_modification=1, make_parents=0, ctx=0x7ffff7dff0a0, pool=0x7ffff40a0028) at ../src/subversion/libsvn_client/update.c:629 #5 0x00007fffec507392 in SVNClient::update (this=0x7ffff0102710, targets=..., revision=..., depth=svn_depth_unknown, depthIsSticky=false, makeParents=false, ignoreExternals=false, allowUnverObstructions=false) at ../src/subversion/bindings/javahl/native/SVNClient.cpp:337 #6 0x00007fffec513566 in Java_org_apache_subversion_javahl_SVNClient_update ( env=0x7ffff00081d0, jthis=0x7ffff7fd7a88, jtargets=0x7ffff7fd7a80, jrevision=0x0, jdepth=0x7ffff7fd7a70, jdepthIsSticky=0 '\000', jmakeParents=0 '\000', jignoreExternals=0 '\000', jallowUnverObstructions=0 '\000') at ../src/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp:448 (gdb) p lock->cache $1 = (fs_fs_dag_cache_t *) 0x7ffff407c028 (gdb) p lock->cache[0] Cannot access memory at address 0x7ffff407c028 -- Philip