[Bug 287431] fusefs: deadlock during unmount if FUSE_INIT never completed

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 10 Jun 2025 19:33:59 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287431

            Bug ID: 287431
           Summary: fusefs: deadlock during unmount if FUSE_INIT never
                    completed
           Product: Base System
           Version: 15.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: asomers@FreeBSD.org

The following sequence of events will lead to a deadlock

1) A process mounts a fuse file system but never responds to the FUSE_INIT
request.
2) Some other process tries to access the mountpoint.  Many different types of
access might trigger this bug, but the easiest example is ls, which will
trigger a FUSE_ACCESS request.  That operation will block in fuse_ticket_fetch
because FUSE_INIT hasn't completed yet.
3) Some process, possibly the daemon itself, tries to unmount the mount point. 
The unmount syscall will block in fuse_vfsop_root because the process from step
2 has the vnode lock for the fuse file system's root vnode.

I have a test case for this already, but not a solution.

-- 
You are receiving this mail because:
You are the assignee for the bug.