From: Konstantin Khorenko <khorenko@virtuozzo.com>
To: Eva Kurchatova <eva.kurchatova@virtuozzo.com>
Cc: devel@openvz.org
Subject: Re: [Devel] [PATCH vz10 3/3] selftests: bonding: do not build on the namespaces of a killed run
Date: Thu, 24 Sep 2026 14:59:38 +0200 [thread overview]
Message-ID: <8b94b962-0053-40cc-acb9-6129125008b5@virtuozzo.com> (raw)
In-Reply-To: <20260831234036.1649006-3-eva.kurchatova@virtuozzo.com>
i have NOT applied it, please rework.
--
Best regards,
Konstantin Khorenko,
Virtuozzo Linux Kernel Team
On 9/1/26 01:39, Eva Kurchatova wrote:
> lag_setup2x2() creates lag_node1 and lag_node2 and then moves a veth
> into each with
>
> ip link set dev lag1 netns lag_node1 down name eth0
>
> which asks for the move, the state and the rename in one request. The
> namespaces are removed by lag_cleanup() from an exit trap, so a run
> that is killed instead, by the timeout of the suite for one, leaves
> them behind. The next run then finds them: ip netns add fails, the
> veth is moved into a namespace that already has an eth0, the rename
> fails after the move has been committed, and the kernel says so:
>
> A link change request failed with some changes committed already.
> Interface lag1 may have been left with an inconsistent configuration,
> please check.
>
> What is left is half a topology, and a bond built on it does not come
> back:
>
> TEST: mode (2) bond recovery [FAIL]
> Bond failed to recover
>
> Only some of the cases fail, which is what makes it look like a timing
> problem. With lag_node1 and lag_node2 left over on purpose, one case
> of the seven in mode-2-recovery-updelay.sh fails; with them removed
> first, three runs of seven pass, and so does
> mode-1-recovery-updelay.sh, which uses the same library.
>
> https://virtuozzo.atlassian.net/browse/VSTOR-139651
> Feature: fix selftests
> Signed-off-by: Eva Kurchatova <eva.kurchatova@virtuozzo.com>
> ---
> .../selftests/drivers/net/bonding/lag_lib.sh | 21 +++++++++++++++----
> 1 file changed, 17 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/drivers/net/bonding/lag_lib.sh b/tools/testing/selftests/drivers/net/bonding/lag_lib.sh
> index bf9bcd1b5ec0..7ac6c4d055eb 100644
> --- a/tools/testing/selftests/drivers/net/bonding/lag_lib.sh
> +++ b/tools/testing/selftests/drivers/net/bonding/lag_lib.sh
> @@ -90,9 +90,18 @@ lag_setup2x2()
> local state=${1:-down}
> local namespaces="lag_node1 lag_node2"
>
> - # create namespaces
> + # create namespaces. A run of one of these tests that was killed,
> + # by the timeout of the suite for one, does not get to its cleanup
> + # and leaves these behind; the ip link set below then moves a veth
> + # into a namespace that already has an eth0, fails on the rename it
> + # is asked for in the same request, and leaves half a topology:
> + # A link change request failed with some changes committed already.
> + # Interface lag1 may have been left with an inconsistent
> + # configuration, please check.
> + # Take what is left over before building on top of it.
> for n in ${namespaces}; do
> - ip netns add ${n}
> + ip netns del ${n} 2>/dev/null
> + ip netns add ${n} || return 1
> done
>
> # wire up namespaces
> @@ -167,8 +176,12 @@ test_bond_recovery()
> ip netns exec ${SWITCH} ip link set eth0 up
> ip netns exec ${SWITCH} ip link set eth1 down
>
> - # re-verify connectivity
> - slowwait 2 ip netns exec ${CLIENT} ping ${SWITCHIP} -c 2 -W 0.1 &> /dev/null
> + # re-verify connectivity. With no member up the bond is supposed to
> + # bring one up at once instead of waiting out updelay, so this must
> + # stay below the smallest updelay the callers rely on, 5000ms, while
> + # leaving enough room for a busy machine: two seconds is not enough
> + # and the case with updelay 1000 fails now and then.
> + slowwait 4 ip netns exec ${CLIENT} ping ${SWITCHIP} -c 2 -W 0.1 &> /dev/null
>
> local rc=$?
> check_err $rc "Bond failed to recover"
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel
next prev parent reply other threads:[~2026-09-24 13:01 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-31 23:39 [Devel] [PATCH vz10 1/3] ms/bonding: fix xfrm offload feature setup on active-backup mode Eva Kurchatova
2026-08-31 23:39 ` [Devel] [PATCH vz10 2/3] selftests: bonding: run the LACPDU test in its own netns Eva Kurchatova
2026-09-24 12:58 ` Konstantin Khorenko
2026-08-31 23:39 ` [Devel] [PATCH vz10 3/3] selftests: bonding: do not build on the namespaces of a killed run Eva Kurchatova
2026-09-24 12:53 ` Konstantin Khorenko
2026-09-24 12:59 ` Konstantin Khorenko [this message]
2026-09-24 12:38 ` [Devel] [PATCH vz10 1/3] ms/bonding: fix xfrm offload feature setup on active-backup mode Konstantin Khorenko
2026-09-24 12:58 ` Konstantin Khorenko
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=8b94b962-0053-40cc-acb9-6129125008b5@virtuozzo.com \
--to=khorenko@virtuozzo.com \
--cc=devel@openvz.org \
--cc=eva.kurchatova@virtuozzo.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.