Re: [syzbot] [fs?] INFO: task hung in pipe_release (4)

From: David Howells
Date: Sat Jul 29 2023 - 11:28:47 EST


David Howells <dhowells@xxxxxxxxxx> wrote:

> I've managed to reproduce it finally. Instrumenting the pipe_lock/unlock
> functions, splice_to_socket() and pipe_release() seems to show that
> pipe_release() is being called whilst splice_to_socket() is still running.

That's actually a bit of a red herring. pipe_release() is so-called because
it's called as the release file op for an end of the pipe. It doesn't
automatically free the pipe_inode_info struct - there's refcounting on that.

So the problem is that udp_sendmsg() didn't return; pipe_release() hanging on
the pipe_lock() is merely a noisy symptom thereof.

David