Hi I am tracking issues with perfused where a crashed PUFFS filesystem will freeze the machine. This happens because various processes attempt to lock the root vnode. Example backtrace for getty:
sleepq_block turnstile_block rw_vector_enter vlockmgr ffs_lock VOP_LOCK vn_lock namei do_sys_stat sys___stat30 syscall Who holds the lock? Probably perfused, which is engaged in a lookup and seems to be awaiting an answer from itself: sleepq_block cv_wait_sig puffs_msg_wait puffs_msg_wait2 puffs_vnop_inactive VOP_INACTIVE vclean getcleanvnode getnewvnode ffs_vget ufs_lookup VOP_LOOKUP lookup sys_access syscall What about adding a timeout in struct puffs_msgpark and use it for inactive operations? Returning EAGAIN from puffs_vnop_inactive seems an easy way to work around this deadlock. -- Emmanuel Dreyfus http://hcpnet.free.fr/pubz m...@netbsd.org