Skip to content

Fix uring teardown#143

Open
hbirth wants to merge 2 commits intoDDNStorage:redfs-rhel9_4-427.42.1from
hbirth:redfs-rhel9_4-427.42.1
Open

Fix uring teardown#143
hbirth wants to merge 2 commits intoDDNStorage:redfs-rhel9_4-427.42.1from
hbirth:redfs-rhel9_4-427.42.1

Conversation

@hbirth
Copy link
Copy Markdown
Collaborator

@hbirth hbirth commented Apr 10, 2026

cherry pick from redfs-ubuntu-noble

hbirth added 2 commits April 10, 2026 09:38
Signed-off-by: Horst Birthelmer <hbirthelmer@ddn.com>
(cherry picked from commit ad21e5a)
Fix uninterruptible sleep (D state) hangs during FUSE filesystem
teardown when using io_uring. The issue manifests as processes stuck
waiting for requests that are never completed, particularly affecting
force requests like FUSE_FLUSH or when requests are created after
fuse_abort_conn() already finished.

If on daemon exit
io_uring_try_cancel_requests() runs and  calls fuse_uring_cancel()
which will teardown the entries by calling fuse_uring_entry_teardown()
before fuse_abort_conn() then we end up in fuse_uring_abort with
queue_refs == 0 and the queues are never stopped.

If the queues are stopped all new requests will be rejected, but
that does not happen, so all new calls are stuck.

Signed-off-by: Horst Birthelmer <hbirthelmer@ddn.com>
(cherry picked from commit 9550b4d)
@hbirth hbirth requested a review from bsbernd April 10, 2026 09:20
@bsbernd
Copy link
Copy Markdown
Collaborator

bsbernd commented Apr 10, 2026

@hbirth I need to look tomorrow into the 9.4 branch, because 9.4 does not have this F_CANCEL and I had added a workaround into that kernel version therefore. Need to verify it for races (we have a jira for a related issue on 9.4).

@hbirth
Copy link
Copy Markdown
Collaborator Author

hbirth commented Apr 10, 2026

So the case where queue_refs == 0 can not occur? I have to check, too, then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants