git: 1f8eae9a7a45 - stable/14 - tests/carp: make a 0.2 second pause before configuring second jail

From: Zhenlei Huang <zlei_at_FreeBSD.org>
Date: Sun, 10 May 2026 06:27:15 UTC
The branch stable/14 has been updated by zlei:

URL: https://cgit.FreeBSD.org/src/commit/?id=1f8eae9a7a45f3e816b112ae3e7cf19ece1a5b98

commit 1f8eae9a7a45f3e816b112ae3e7cf19ece1a5b98
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2025-12-04 18:41:19 +0000
Commit:     Zhenlei Huang <zlei@FreeBSD.org>
CommitDate: 2026-05-10 06:25:56 +0000

    tests/carp: make a 0.2 second pause before configuring second jail
    
    for all scenarios where both jails have same priority/advskew.  There is a
    tiny chance that on both sides carp_master_down() will be executed in
    parallel and advertisements will also fly through the bridge(4) in
    parallel, thus both sides will switch to MASTER before receiving the
    announcement from peer.  This makes the test to fail.  So far this
    flakyness was observed for carp:vrrp_v4 only, but in theory it is possible
    for any of the patched scenarios.
    
    Note that this sleep does not prolong execution of the tests, as the first
    jail is already configured, and if we slept before configuring the second,
    we would sleep less in wait_for_carp().
    
    (cherry picked from commit 27ff90cd3d8d2ac8198f30cbebeefb15a49d41bc)
    (cherry picked from commit ad2fff6d6a4d74b6bb9008e447eafc567e8660e0)
---
 tests/sys/netinet/carp.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/sys/netinet/carp.sh b/tests/sys/netinet/carp.sh
index 4d58bcf03c12..4fc682f14449 100755
--- a/tests/sys/netinet/carp.sh
+++ b/tests/sys/netinet/carp.sh
@@ -90,6 +90,7 @@ basic_v4_body()
 	jexec carp_basic_v4_two ifconfig ${epair_one}b 192.0.2.202/29 up
 	jexec carp_basic_v4_two ifconfig ${epair_one}b add vhid 1 192.0.2.1/29
 
+	sleep 0.2
 	jexec carp_basic_v4_three ifconfig ${epair_two}b 192.0.2.203/29 up
 	jexec carp_basic_v4_three ifconfig ${epair_two}b add vhid 1 \
 	    192.0.2.1/29
@@ -135,6 +136,7 @@ unicast_v4_body()
 	jexec carp_uni_v4_two ifconfig ${epair_one}b add vhid 1 \
 	    peer 198.51.100.224 192.0.2.1/32
 
+	sleep 0.2
 	jexec carp_uni_v4_three sysctl net.inet.ip.forwarding=1
 	jexec carp_uni_v4_three ifconfig ${epair_two}b 198.51.100.224/25 up
 	jexec carp_uni_v4_three route add 198.51.100.2 198.51.100.129
@@ -206,6 +208,7 @@ basic_v6_body()
 	jexec carp_basic_v6_two ifconfig ${epair_one}b inet6 add vhid 1 \
 	    2001:db8::0:1/64
 
+	sleep 0.2
 	jexec carp_basic_v6_three ifconfig ${epair_two}b inet6 2001:db8::1:3/64 up no_dad
 	jexec carp_basic_v6_three ifconfig ${epair_two}b inet6 add vhid 1 \
 	    2001:db8::0:1/64
@@ -261,6 +264,7 @@ unicast_v6_body()
 	    peer6 2001:db8:2::2 \
 	    2001:db8::0:1/64
 
+	sleep 0.2
 	jexec carp_uni_v6_three ifconfig ${epair_two}b inet6 2001:db8:2::2/64 \
 	    no_dad up
 	jexec carp_uni_v6_three route -6 add default 2001:db8:2::1
@@ -326,6 +330,7 @@ unicast_ll_v6_body()
 	jexec ${j}_two ifconfig ${epair_one}b inet6 add vhid 1 \
 	    peer6 ${ll_two} \
 	    2001:db8::0:1/64
+	sleep 0.2
 	jexec ${j}_three ifconfig ${epair_two}b inet6 add vhid 1 \
 	    peer6 ${ll_one} \
 	    2001:db8::0:1/64