tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PUFFS fs crash freezes system



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
manu%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index