Hi Frank I think Malahal already talked to you about the above. Just to describe the situation in detail I provide the call-stack
#0 0x00007f895e2755d7 in raise () from /lib64/libc.so.6 #1 0x00007f895e276cc8 in abort () from /lib64/libc.so.6 #2 0x00000000004e72a0 in cache_inode_lookup_impl (parent=0x1b32030, name=0x7f876c06c671 "regression-framework", entry=0x7f893371f700) at /usr/src/debug/nfs-ganesha-2.3.2-ibm38-0.1.1-Source/cache_inode/cache_inode_lookup.c:202 #3 0x00000000004e160d in cache_inode_remove (entry=0x1b32030, name=0x7f876c06c671 "regression-framework") at /usr/src/debug/nfs-ganesha-2.3.2-ibm38-0.1.1-Source/cache_inode/cache_inode_remove.c:92 #4 0x0000000000486c9f in cleanup_pseudofs_node (pseudopath=0x7f876c06c660 "/gpfs/ma17/titan/regression-framework", entry=0x1b32850) at /usr/src/debug/nfs-ganesha-2.3.2-ibm38-0.1.1-Source/Protocols/NFS/nfs4_pseudo.c:118 #5 0x0000000000489420 in pseudo_unmount_export (export=0x1b2b4d8) at /usr/src/debug/nfs-ganesha-2.3.2-ibm38-0.1.1-Source/Protocols/NFS/nfs4_pseudo.c:616 #6 0x000000000051d450 in clean_up_export (export=0x1b2b4d8) at /usr/src/debug/nfs-ganesha-2.3.2-ibm38-0.1.1-Source/support/exports.c:1863 #7 0x000000000051d7e4 in kill_export_root_entry (entry=0x1ab5f00) at /usr/src/debug/nfs-ganesha-2.3.2-ibm38-0.1.1-Source/support/exports.c:1917 #8 0x00000000004fbdb1 in cache_inode_lru_unref (entry=0x1ab5f00, flags=0) at /usr/src/debug/nfs-ganesha-2.3.2-ibm38-0.1.1-Source/cache_inode/cache_inode_lru.c:1472 #9 0x00000000004e00d1 in cache_inode_put (entry=0x1ab5f00) at /usr/src/debug/nfs-ganesha-2.3.2-ibm38-0.1.1-Source/include/cache_inode_lru.h:178 #10 0x00000000004e094e in cache_inode_getattr (entry=0x1b32850, opaque=0x7f893371fb80, cb=0x47b01d <nfs4_readdir_callback>, cb_state=CB_ORIGINAL) at /usr/src/debug/nfs-ganesha-2.3.2-ibm38-0.1.1-Source/cache_inode/cache_inode_getattr.c:151 #11 0x00000000004e4927 in cache_inode_readdir (directory=0x1b32030, cookie=0, nbfound=0x7f893371fcbc, eod_met=0x7f893371fcd7, attrmask=122822, cb=0x47b01d <nfs4_readdir_callback>, opaque=0x7f893371fc60) at /usr/src my suggestion to circumvent the deadlock situation is to wrap the call to cache_inode_getattr() in an unlock / lock sandwich. E.g. PTHREAD_RWLOCK_unlock(&directory->content_lock); tmp_status = cache_inode_getattr(entry, &cb_parms, cb, CB_ORIGINAL); PTHREAD_RWLOCK_wrlock(&directory->content_lock); as I don't think the directories content_lock must be held while processing an entry. What do you think ? Cheers Swen ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel