On Tue, 9 Dec 2025 10:36:01 +1100
David Gibson
On Mon, Dec 08, 2025 at 10:54:00PM +0100, Stefano Brivio wrote:
On Mon, 8 Dec 2025 22:28:22 +0100 Stefano Brivio
wrote: We're somehow hitting:
ASSERTION FAILED in flow_epollfd (flow.c:362): f->epollid < ((1 << 8) - 1)
on an inbound spliced connection, with a single forwarded port, an HTTP server in a Podman container, and a GET request. Reproducer at https://bodhi.fedoraproject.org/updates/FEDORA-2025-93b4eb64c3#comment-44734...
printf 'FROM registry.fedoraproject.org/fedora:latest\nRUN /usr/bin/dnf install -y httpd\nEXPOSE 80\nCMD ["-D", "FOREGROUND"]\nENTRYPOINT ["/usr/sbin/httpd"]\n' > Containerfile podman build -t fedora-httpd $(pwd) podman run -d -p 8080:80 localhost/fedora-httpd
I guess we don't set EPOLLFD_ID_DEFAULT early enough on inbound spliced sockets for some reason and we get a socket event while we still have EPOLLFD_ID_INVALID set.
As we're not really using epoll identifiers yet, set EPOLLFD_ID_DEFAULT right away on newly allocated flows, while we figure this out.
Link: https://bodhi.fedoraproject.org/updates/FEDORA-2025-93b4eb64c3#comment-44734... Signed-off-by: Stefano Brivio
--- I just merged this, posting for awareness / review. Ah, never mind, this makes it worse somehow:
5.6384: Flow 0 (TCP connection (spliced)): SPLICE_CONNECT 5.6384: Flow 0 (TCP connection (spliced)): ERROR on epoll_ctl(): No such file or directory
Does this imply you managed to reproduce locally? You hadn't as of your comment a few after the one linked. I also haven't managed to reproduce this.
Just simulate an error (that's not EINPROGRESS) on connect() in tcp_splice_connect(). Patch coming. -- Stefano