OpenSolaris

Printable Version Enter a New Search
Bug ID 6510075
Synopsis ufs_read/ufs_map/pagefault can deadlock when there is a pending ufs_quiesce
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:ufs
Keywords VOP_MAP | as_fault | as_lock | deadlock | rtiq_reviewed | ufs-cleanup | ufs_quiesce
Responsible Engineer Vidya Sakar
Reported Against 5.10
Duplicate Of
Introduced In solaris_2.5.1
Commit to Fix snv_82
Fixed In snv_82
Release Fixed solaris_nevada(snv_82) , solaris_10u6(s10u6_05) (Bug ID:2164270) solaris_9(s9patch) (Bug ID:2164811,) solaris_8(s8patch) (Bug ID:2164812,)
Related Bugs 4362469 , 6430461 , 6497074 , 6661844 , 6727153 , 2172445 , 4339897
Submit Date 5-January-2007
Last Update Date 31-January-2008
Description
This is 4-way deadlock involving the following four threads
1) ufs_read thread
        Did lockfs_begin (incremented vnops count) -> Wants (a_lock as READER)
        Will not get it because there is a waiting writer
2) ufs_map thread
        Wants (a_lock as WRITER)
        Will not get it because the a_lock is held as READER
3) pagefault thread
        Holds [a_lock as READER] -> Wants to do ufs_lockfs_begin
        This will not succeed because there is a pending quiesce request
4) quiesce thread
        Waits for vnops count to drop to zero
        This will not drop to zero because ufs_read thread which incremented the
 vnops count is stuck, this completes the cyclic dependency deadlock.
Work Around
N/A
Comments
N/A