Bug#993620: vip-manager: test failure with some network configurations

2022-01-08 Thread Paul Gevers

Control: severity -1 serious

Hi,

On Fri, 3 Sep 2021 12:17:10 -0600 Dan Bungert 
 wrote:

vip-manager behavior_test can fail, depending on the device network
configuration.  If the test device has a network device of type ether
and a zero hardware address, and it selects this network device as the
one to use, the tests will fail.


We're currently seeing this as a flaky test on amd64 on the Debian 
ci.d.n infrastructure and it's blocking glibc from migrating (for now, a 
retry or two will probably "fix" that).


https://ci.debian.net/packages/v/vip-manager/testing/arm64/

Paul


OpenPGP_signature
Description: OpenPGP digital signature


Bug#993620: vip-manager: test failure with some network configurations

2021-09-03 Thread Dan Bungert
Package: vip-manager
Version: 1.0.1-4
Severity: normal
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu impish

Dear Maintainer,

vip-manager behavior_test can fail, depending on the device network
configuration.  If the test device has a network device of type ether
and a zero hardware address, and it selects this network device as the
one to use, the tests will fail.

Example failure:
https://autopkgtest.ubuntu.com/results/autopkgtest-impish/impish/armhf/v/vip-manager/20210901_213607_5779b@/log.gz
2021/09/01 21:35:37 Problems with generating the virtual ip manager: Cannot run 
vip-manager on the loopback device
as its hardware address is the local address (00:00:00:00:00:00),
which prohibits sending of gratuitous ARP messages

Here is abbreviated output of 'ip link show' for one such test device:
3: gretap0@NONE:  mtu 1476 qdisc noop state DOWN mode 
DEFAULT group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
44262: eth0@if44263:  mtu 1458 qdisc noqueue 
state UP mode DEFAULT group default qlen 1000
link/ether 00:16:3e:0f:a3:f7 brd ff:ff:ff:ff:ff:ff link-netnsid 0

In this example, gretap0 will be the chosen network device, but will
fail at runtime of vip-manager due to the all-zeros mac address.
Instead, eth0 should be chosen.

Please see the attached patch, which I will be looking to get integrated
to Ubuntu, which seems to address the above problem for Ubuntu armhf
autopkgtest.

This bug report was also filed in Ubuntu and can be found at
https://launchpad.net/bugs/1942375

-Dan
Description: Improved test device selection
Author:  Dan Bungert 
Bug-Ubuntu:  https://bugs.launchpad.net/bugs/1942375
Last-Update: 2021-09-03
--- a/test/behaviour_test.sh
+++ b/test/behaviour_test.sh
@@ -7,9 +7,29 @@
 NC='\033[0m' # No Color
 
 # testing parameters
-dev=`ip link show | grep -B1 ether | cut -d ":" -f2 | head -n1 | cut -d " " -f2 | sed s/@.*//`
 vip=10.0.2.123
 
+function get_dev {
+# select a suitable device for testing purposes
+# * a device that is an "ether"
+# * and isn't a nil hardware address
+
+# https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
+ARPHRD_ETHER=1
+
+for dev in /sys/class/net/* ; do
+test ! -e "$dev/address" && continue
+test "$(cat $dev/address)" = "00:00:00:00:00:00" && continue
+test "$(cat $dev/type)" != "$ARPHRD_ETHER" && continue
+basename "$dev"
+break
+done
+}
+
+dev="$(get_dev)"
+# prerequisite test - do we have a suitable device?
+test -n "$dev"
+
 #cleanup
 function cleanup {
 if test -f .ncatPid
@@ -35,7 +55,7 @@
 }
 trap cleanup EXIT
 
-# prerequisite test 0: vip should not yet be registered
+# prerequisite test: vip should not yet be registered
 ! ip address show dev $dev | grep $vip
 
 # run etcd with podman/docker maybe?