public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: Stefano Brivio <sbrivio@redhat.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: passt-dev@passt.top, Jon Maloy <jmaloy@redhat.com>,
	Laurent Vivier <lvivier@redhat.com>
Subject: Re: [PATCH v8 10/19] pesto, conf: Have pesto connect to passt and check versions
Date: Wed, 06 May 2026 09:55:32 +0200 (CEST)	[thread overview]
Message-ID: <20260506095531.0b1387c5@elisabeth> (raw)
In-Reply-To: <afrT1kYDK4_IZdlZ@zatzit>

On Wed, 6 May 2026 15:38:30 +1000
David Gibson <david@gibson.dropbear.id.au> wrote:

> On Wed, May 06, 2026 at 01:47:10AM +0200, Stefano Brivio wrote:
> > From: David Gibson <david@gibson.dropbear.id.au>
> > 
> > Start implementing pesto in earnest.  Create a control/configuration
> > socket in passt.  Have pesto connect to it and retrieve a server greeting
> > Perform some basic version checking.
> > 
> > Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> > [sbrivio: Avoid potential recursive calling between conf_accept() and
> >  conf_close(), reported by clang-tidy]  
> 
> Huh.  For some reason that warning didn't trip for me.  Although it's
> technically true they can mutually recurse, I believe they're both
> tail calls, so it shouldn't eat the stack.
> 
> > [sbrivio: In conf(), check we're not exceeding sizeof(c->control_path)
> >  instead of sizeof(c->socket_path), and, in pesto's main(), print
> >  argv[optind] instead of argv[1] to indicate an invalid socket path,
> >  both reported by Jon Maloy]
> > [sbrivio: In pesto's main(), drop unnecessary newline from error
> >  message, reported by Laurent]
> > [sbrivio: Don't use SOCK_NONBLOCK on accept4(), as that only applies
> >  to the *new* file descriptor, which we don't want -- set O_NONBLOCK
> >  on the listening file descriptor using fcntl()]  
> 
> Making the new (accepted) socket non-blocking was the intended
> behaviour here.  We also want non-blocking for the listening socket,
> but that was already done in feab892c7 ("tap, repair: Use
> SOCK_NONBLOCK and SOCK_CLOEXEC on Unix sockets").

Oops, now that Laurent mentioned it, I realised I dropped it
accidentally while / after debugging things on v6, and:

> WIth the current design, I guess we don't want non-blocking on the
> accepted socket, although I don't think it actually matters very much.

...this is the issue I was trying to fix: if the accepted socket is
non-blocking, messages are cut short sometimes, and in general things
don't work.

I don't remember if this was while testing things on Fedora or Debian,
it only happened in one of the two environments.

So, while it was accidental (I really didn't leave any note for a cover
letter, so I'm almost certain there was no other reason for me to drop
it), I think it's actually a good idea to drop it for the following
reasons:

- O_NONBLOCK on the accepted socket breaks things

- the rest looks correct to me but fairly out of scope, and I have very
  limited time for testing things in detail right now, so I'd rather
  keep that patch for later

Without that patch, and my follow-up change to this patch, we're just
adding two lines for this specific behaviour, instead of 18.

> We will want non-blocking it when we change this to read out the
> updated rules incrementally, rather than all at once.

Right, so maybe we can keep that patch for that moment. Or even before,
again, I think it's all correct and desirable, just out of scope (this
isn't the reason why I dropped it though, I would have written a note).

-- 
Stefano


  parent reply	other threads:[~2026-05-06  7:55 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-05 23:47 [PATCH v8 00/19] Dynamic configuration update implementation Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 01/19] conf, fwd: Stricter rule checking in fwd_rule_add() Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 02/19] fwd_rule: Move ephemeral port probing to fwd_rule.c Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 03/19] fwd, conf: Move rule parsing code to fwd_rule.[ch] Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 04/19] fwd_rule: Move conflict checking back within fwd_rule_add() Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 05/19] fwd: Generalise fwd_rules_info() Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 06/19] pif: Limit pif names to 128 bytes Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 07/19] fwd_rule: Fix some format specifiers Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 08/19] pesto: Introduce stub configuration tool Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 09/19] pesto, log: Share log.h (but not log.c) with pesto tool Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 10/19] pesto, conf: Have pesto connect to passt and check versions Stefano Brivio
2026-05-06  5:38   ` David Gibson
2026-05-06  7:06     ` Laurent Vivier
2026-05-06  7:41       ` David Gibson
2026-05-06  7:55     ` Stefano Brivio [this message]
2026-05-06  8:21       ` David Gibson
2026-05-06  8:30         ` Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 11/19] pesto: Expose list of pifs to pesto and display them Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 12/19] ip: Prepare ip.[ch] for sharing with pesto tool Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 13/19] inany: Prepare inany.[ch] " Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 14/19] pesto: Read current ruleset from passt/pasta and optionally display it Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 15/19] pesto: Parse and add new rules from command line Stefano Brivio
2026-05-06  7:13   ` Laurent Vivier
2026-05-06  9:15     ` Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 16/19] pesto, conf: Send updated rules from pesto back to passt/pasta Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 17/19] conf, fwd: Allow switching to new rules received from pesto Stefano Brivio
2026-05-06  7:15   ` Laurent Vivier
2026-05-06  8:12   ` Laurent Vivier
2026-05-06  8:23     ` David Gibson
2026-05-06  8:39     ` Stefano Brivio
2026-05-06  8:49       ` Stefano Brivio
2026-05-06  8:52         ` David Gibson
2026-05-06  9:11           ` Laurent Vivier
2026-05-06 12:11             ` Stefano Brivio
2026-05-05 23:47 ` [PATCH v8 18/19] fwd_rule: Fix static checkers warnings in fwd_rule_add() Stefano Brivio
2026-05-06  7:18   ` Laurent Vivier
2026-05-05 23:47 ` [PATCH v8 19/19] pesto, conf, fwd_rule: Add options and modes to add, delete, clear rules Stefano Brivio
2026-05-06  6:45   ` David Gibson
2026-05-06  8:22     ` Stefano Brivio
2026-05-06  8:48       ` David Gibson
2026-05-06  8:56         ` Stefano Brivio
2026-05-06  9:22           ` David Gibson
2026-05-06 12:52           ` Stefano Brivio
2026-05-06  6:53 ` [PATCH v8 00/19] Dynamic configuration update implementation David Gibson

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=20260506095531.0b1387c5@elisabeth \
    --to=sbrivio@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=jmaloy@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=passt-dev@passt.top \
    /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).