Re: [RFC] fuse: do not generate interrupt requests for fatal signals

From: Bernd Schubert
Date: Fri Jun 14 2024 - 06:33:24 EST




On 6/13/24 09:55, Miklos Szeredi wrote:
> On Thu, 13 Jun 2024 at 06:02, Haifeng Xu <haifeng.xu@xxxxxxxxxx> wrote:
>>
>> When the child reaper of a pid namespace exits, it invokes
>> zap_pid_ns_processes() to send SIGKILL to all processes in the
>> namespace and wait them exit. But one of the child processes get
>> stuck and its call trace like this:
>>
>> [<0>] request_wait_answer+0x132/0x210 [fuse]
>> [<0>] fuse_simple_request+0x1a8/0x2e0 [fuse]
>> [<0>] fuse_flush+0x193/0x1d0 [fuse]
>> [<0>] filp_close+0x34/0x70
>> [<0>] close_fd+0x38/0x50
>> [<0>] __x64_sys_close+0x12/0x40
>> [<0>] do_syscall_64+0x59/0xc0
>> [<0>] entry_SYSCALL_64_after_hwframe+0x44/0xae
>
> Which process is this?
>
> In my experience such lockups are caused by badly written fuse servers.


Btw, if libfuse should be used, it now supports disabling interrupts

https://github.com/libfuse/libfuse/commit/cef8c8b249023fb8129ae791e0998cbca771f96a



Cheers,
Bernd