Bug 115951 - FUSE creates deadlock together with /proc/mounts
Summary: FUSE creates deadlock together with /proc/mounts
Status: NEW
Alias: None
Product: IO/Storage
Classification: Unclassified
Component: Other (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: io_other
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-06 13:43 UTC by Armin Schindler
Modified: 2016-04-06 13:43 UTC (History)
0 users

See Also:
Kernel Version: 4.2
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Armin Schindler 2016-04-06 13:43:11 UTC
FUSE based filesystems, when more than one is used at the same time, can create a deadlock. All FUSE processes and also other filesystem accesses result in D-state forever.

Reproducable with davfs2 version 1.5.2.
davfs2 uses a loop to select() for FUSE control. If select() returns with timeout, it checks the mounts by reading /proc/mounts.
 
When another FUSE process, like another davfs2 mount, is active with e.g. network, reading /proc/mounts is blocked (D-state). 
This can cause a situation where all FUSE processes block each other waiting for the other to finish.

Is FUSE holding any locks/mutexes when in user-space? 
Does reading from /proc/mounts lock the same?

Note You need to log in before you can comment on or make changes to this bug.