[Bug 296291] cuse(3): cuse_server_free( ) busy-waits unkillably (pause("W")) when a c lient ref is not released on virtual_oss te ardown — process stuck in D, cuse.ko pinned , reboot required
| Newsgroups | gmane.os.freebsd.bugs |
|---|---|
| Message-ID | <[email protected]/bugzilla/> |
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296291 John Baldwin <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from John Baldwin <[email protected]> --- I think the design flaw here is blocking in a cdevpriv destructor at all. Instead, whatever state is shared by multiple open fd's just needs to be refcounted and the cdevpriv destructor needs to just drop the reference and move on letting the backing object be deleted when it's references drops to zero. The problem is that someone needs to go read the cuse(4) code enough to understand if we need to add a new ref count, and if so on what, and how to handle tombstoning that state (if needed) from this particular cdevpriv destructor. I don't think trying to find other open references to forcefully revoke them is the right path to pursue for fixing this vs using the more typical ref count approach. -- You are receiving this mail because: You are the assignee for the bug.