[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
Date: Fri, 26 Jun 2026 16:14:42 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296291
John Baldwin <jhb@FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jhb@FreeBSD.org
--- Comment #1 from John Baldwin <jhb@FreeBSD.org> ---
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.