Re: [REGRESSION] io_uring: final close can hang on a stopped submitter
From: Karl Mehltretter
Date: Tue Oct 27 2026 - 16:46:03 EST
On Tue, Oct 27, 2026 at 12:04:59PM +0100, Jens Axboe wrote:
> > 3. A unmaps the ring but keeps its fd. B drops its fd and mappings,
> > then stops itself with SIGSTOP.
> > 4. After confirming that B is stopped, controller P tells A to close
> > the final ring fd.
> > 5. P resumes B after two seconds so the test can finish.
> >
> > B keeps both pipe ends open and remains alive until close returns. This
> > excludes pipe HUP and process exit as completion sources.
>
> This is working as intended. With the change, close() waits for
> requests still in flight, as otherwise they keep files pinned after
> the ring is gone. If you SIGSTOP a task, then that task can't run
> the required work to complete it. A fatal signal will still kill
> it.
>
> Unsurprisingly, sending SIGSTOP to something may prevent it from
> doing work...
>
Good point. This is not a real regression.
Thanks,
Karl