Bug 8005 - fuse: in fuse_flush only wait if someone wants the return code
Summary: fuse: in fuse_flush only wait if someone wants the return code
Status: RESOLVED WONTFIX
Alias: None
Product: ANCK 4.19 Dev
Classification: ANCK
Component: fs (show other bugs) fs
Version: 4.19-027.x
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: baibai871
QA Contact: shuming
URL:
Whiteboard:
Keywords: Bugfix
Depends on:
Blocks:
 
Reported: 2024-01-22 15:01 UTC by baibai871
Modified: 2024-01-30 11:34 UTC (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description baibai871 2024-01-22 15:01:57 UTC
Description of problem:
If a fuse filesystem is mounted inside a container, there is a problem
during pid namespace destruction. The scenario is:

1. task (a thread in the fuse server, with a fuse file open) starts
   exiting, does exit_signals(), goes into fuse_flush() -> wait
2. fuse daemon gets killed, tries to wake everyone up
3. task from 1 is stuck because complete_signal() doesn't wake it up, since
   it has PF_EXITING.

The result is that the thread will never be woken up, and pid namespace
destruction will block indefinitely.

To add insult to injury, nobody is waiting for these return codes, since
the pid namespace is being destroyed.


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
Comment 1 小龙 admin 2024-01-23 09:40:37 UTC
The PR Link: https://gitee.com/anolis/cloud-kernel/pulls/2648
Comment 2 Jingbo Xu alibaba_cloud_group 2024-01-23 09:49:40 UTC
The upstream has reverted the patch "fuse: in fuse_flush only wait if someone wants the return code" in v6.6, I'm afraid we also need to revert it for ANCK 5.10 which is introduced in https://gitee.com/anolis/cloud-kernel/pulls/2259 @
Comment 4 Joseph Qi alibaba_cloud_group 2024-01-30 11:34:04 UTC
Since it will introduce regression, leave it as won't fix now.