OpenSolaris

Printable Version Enter a New Search
Bug ID 6436526
Synopsis delete_queue thread reporting drained when it may not be true
State 10-Fix Delivered (Fix available in build)
Category:Subcategory kernel:zfs
Keywords
Responsible Engineer Mark Shellenbaum
Reported Against
Duplicate Of
Introduced In solaris_nevada
Commit to Fix snv_44
Fixed In snv_44
Release Fixed solaris_nevada(snv_44) , solaris_10u3(s10u3_03) (Bug ID:2140144)
Related Bugs 6420204
Submit Date 9-June-2006
Last Update Date 19-July-2006
Description
This bug was originally part of bugid 6420204 but is being broken out as a separate bugid.

The bug has recently be seen on ZFS root filesystems, but any ZFS filesystem is potentially a  victim.  The scenerio is as follows...

A filesystem is initially mounted read/write with an empty ZFS Intent Log and a rather large number of znodes on the delete queue.  During the mount, ZFS starts up a delete_queue thread and asynchronously starts removing the znodes from the delete queue.  If the ZFS filesystem is then changed to readonly (which sets z_thread_target to 0), before the delete_queue has been completely drained, the zfs_drain_dq will exit, causing z_draining to be set to false and z_drained to be set to true (eventhough the queue hasn't yet completed draining).  At this point, the left over znodes will remain in the delete queue until the filesystem is remounted.
Work Around
N/A
Comments
N/A