public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
* [PATCH] flow: Set EPOLLFD_ID_DEFAULT on newly allocated flows, not EPOLLFD_ID_INVALID
@ 2025-12-08 21:28 Stefano Brivio
  2025-12-08 21:54 ` Stefano Brivio
  0 siblings, 1 reply; 6+ messages in thread
From: Stefano Brivio @ 2025-12-08 21:28 UTC (permalink / raw)
  To: passt-dev; +Cc: David Gibson, Laurent Vivier

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-4473411

  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

  curl http://localhost:8080

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-4473411
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
---
I just merged this, posting for awareness / review.

 flow.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/flow.c b/flow.c
index 8d72965..f1bde9a 100644
--- a/flow.c
+++ b/flow.c
@@ -382,7 +382,8 @@ void flow_epollid_set(struct flow_common *f, int epollid)
  */
 void flow_epollid_clear(struct flow_common *f)
 {
-	f->epollid = EPOLLFD_ID_INVALID;
+	/* FIXME: Use EPOLLFD_ID_INVALID instead once it's safe to do so */
+	f->epollid = EPOLLFD_ID_DEFAULT;
 }
 
 /**
-- 
2.43.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-12-09  0:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-12-08 21:28 [PATCH] flow: Set EPOLLFD_ID_DEFAULT on newly allocated flows, not EPOLLFD_ID_INVALID Stefano Brivio
2025-12-08 21:54 ` Stefano Brivio
2025-12-08 23:36   ` David Gibson
2025-12-08 23:46     ` Stefano Brivio
2025-12-09  0:01   ` David Gibson
2025-12-09  0:05     ` Stefano Brivio

Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).