On Mon, 7 Nov 2022 14:21:30 +1100
David Gibson <david(a)gibson.dropbear.id.au> wrote:
On Fri, Nov 04, 2022 at 02:53:36AM +0100, Stefano
Brivio wrote:
As pasta now configures that target network
namespace with
--config-net, we need to wait for addresses and routes to be actually
present. Just sending netlink messages doesn't mean this is done
synchronously.
A more elegant alternative, which probably makes sense regardless of
this test setup, would be to query, from pasta, addresses and routes
we added, and wait until they're there, before proceeding.
Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com>
Ugly, but I see the point.
As you say in future I hope we can actually detect the completion of
interface configuration which would be useful both here and other
places.
Yes... the outcome of "pasta --config-net ip address show" (compared to
"pasta --config-net -- sh -c 'sleep 0.05; ip address show'") is a
bit
bothering.
One other thing to consider - in the case where
pasta is spawing a new
process, rather than attaching to an existing one, it's possibly
counterintuitive that the process starts before pasta has completed
setup. We possibly should get the spawned thread to wait until the
main pasta thread is entering its main loop before exec()ing the
shell. Obviously requires some sync mechanism, which is a bit clunky.
Right, that might be a problem if somebody spawns a script that relies
on the tap interface to be working right away (even though the delay is
probably small enough for all practical cases).
I'll file a ticket covering both topics.
...