From: David Gibson <david@gibson.dropbear.id.au>
To: passt-dev@passt.top, Stefano Brivio <sbrivio@redhat.com>
Cc: David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCH 0/6] RFC: Possible fixes for bug 94 and bug 95
Date: Fri, 6 Sep 2024 15:17:04 +1000 [thread overview]
Message-ID: <20240906051710.3863211-1-david@gibson.dropbear.id.au> (raw)
As discussed on IRC through the last day, here's a more polished
version of possible fixes for bug 94 (EPOLLRDHUP storm) and bug 95
(EPOLLERR storm). Both of those were sub-problems arising while
investigating podman bug 23686.
We're pretty confident about the EPOLLRDHUP fix (bug 94, patch 1/6),
based on Stefano's testing. I ended up rewriting Stefano's draft
patch for the EPOLLERR case (bug 95, remaining patches), because I
thought of a possibility we hadn't discussed yet: we weren't getting
an error from the socket error queue, but we might be able to get one
with the SO_ERROR getsockopt(). My examination of the kernel code
suggests that's plausible, and that if that's the case using SO_ERROR
should also clear that error condition.
Link: https://bugs.passt.top/show_bug.cgi?id=94
Link: https://bugs.passt.top/show_bug.cgi?id=95
Link: https://github.com/containers/podman/issues/23686
David Gibson (6):
flow: Fix incorrect hash probe in flowside_lookup()
udp: Allow UDP flows to be prematurely closed
flow: Helpers to log details of a flow
udp: Split socket error handling out from udp_sock_recv()
udp: Treat errors getting errors as unrecoverable
udp: Handle more error conditions in udp_sock_errs()
flow.c | 53 ++++++++++++++++++++------------
flow.h | 7 +++++
udp.c | 88 +++++++++++++++++++++++++++++++++++++++++++++---------
udp_flow.c | 18 ++++++++++-
udp_flow.h | 4 +++
5 files changed, 136 insertions(+), 34 deletions(-)
--
2.46.0
next reply other threads:[~2024-09-06 5:17 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-06 5:17 David Gibson [this message]
2024-09-06 5:17 ` [PATCH 1/6] flow: Fix incorrect hash probe in flowside_lookup() David Gibson
2024-09-06 5:17 ` [PATCH 2/6] udp: Allow UDP flows to be prematurely closed David Gibson
2024-09-06 5:17 ` [PATCH 3/6] flow: Helpers to log details of a flow David Gibson
2024-09-06 5:17 ` [PATCH 4/6] udp: Split socket error handling out from udp_sock_recv() David Gibson
2024-09-06 5:17 ` [PATCH 5/6] udp: Treat errors getting errors as unrecoverable David Gibson
2024-09-06 5:17 ` [PATCH 6/6] udp: Handle more error conditions in udp_sock_errs() David Gibson
2024-09-06 11:29 ` [PATCH 0/6] RFC: Possible fixes for bug 94 and bug 95 Stefano Brivio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240906051710.3863211-1-david@gibson.dropbear.id.au \
--to=david@gibson.dropbear.id.au \
--cc=passt-dev@passt.top \
--cc=sbrivio@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).