Comment 6 for bug 1756846

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

I was looking at the test fail in proposed migration.

I realized it fails on ppc64 since 14th August 2017 (and since then it always fails, confirmed by a retry and [1] - even in Artful it fails since then).

It unfortunately fails without any message.

I found in hints-ubuntu/vorlon
# regressed in release; maybe related to resolved/netplan.
force-badtest ifupdown/0.8.16ubuntu2/ppc64el

I tried to recreate that in a VM on ppc.
1. installing ifupdown gives a valid /e/n/i to run the test
2. Test exec reproduces the issue we see in CI
   Verbose log
+ IFACE=sdtest42
+ [ -e /sys/class/net/sdtest42 ]
+ grep -q source-directory .*interfaces.d /etc/network/interfaces
+ grep -q source .*interfaces.d.*cfg /etc/network/interfaces
+ IFACE_CFG=/etc/network/interfaces.d/sdtest42.cfg
+ cat
+ ip link add name sdtest42 type veth peer name vsdtest42
+ trap ip link del dev sdtest42; rm /etc/network/interfaces.d/sdtest42.cfg EXIT INT QUIT PIPE
+ sleep 3
+ ifquery --state sdtest42
+ ip link del dev sdtest42
+ rm /etc/network/interfaces.d/sdtest42.cfg

That means the ifquery fails, and the set -e triggers the trap
=> No message, buu RC=1

Comparing x86/ppc on this in detail
1. VM fresh from cloud image (20180321)
   => no /etc/network/interfaces

2. installed (current) ifupdown
   $ cat /etc/network/interfaces
   # interfaces(5) file used by ifup(8) and ifdown(8)
   # Include files from /etc/network/interfaces.d:
   source-directory /etc/network/interfaces.d

3. purged ifupdown
   leaves e/n/i

4. reinstall from proposed
   still the same e/n/i
=> Until here all is fine, and if installing ifupdown (on a fresh system) drops /e/n/i that explains why no test goes to the SKIP condition.

5. Set up prep steps as the test does
IFACE_CFG=/etc/network/interfaces.d/sdtest42.cfg
IFACE=sdtest42
cat <<EOF > $IFACE_CFG
allow-hotplug $IFACE
iface $IFACE inet static
    address 192.168.234.129
    netmask 255.255.255.0
EOF
=> check status (before adding dev via IP)
$ systemctl status -l <email address hidden>; ifquery -l --allow=hotplug; ifquery sdtest42;
● <email address hidden> - ifup for sdtest42
   Loaded: loaded (/lib/systemd/system/ifup@.service; static; vendor preset: enabled)
   Active: inactive (dead)
Unknown interface sdtest42
# The same on x86 and ppc64

6. add dev (comment says: these should trigger uevents and ifup@.service)
$ ip link add name $IFACE type veth peer name v$IFACE
Check status again shows it is still as dead as before.
# systemctl status -l <email address hidden>; ifquery -l --allow=hotplug; ifquery sdtest42;
● <email address hidden> - ifup for sdtest42
   Loaded: loaded (/lib/systemd/system/ifup@.service; static; vendor preset: enabled)
   Active: inactive (dead)
Unknown interface sdtest42

The device itself is there after the add
$ ll /sys/class/net/sdtest42
lrwxrwxrwx 1 root root 0 Mär 22 07:20 /sys/class/net/sdtest42 -> ../../devices/virtual/net/sdtest42/

ifquery does not find the device config (here as it should look like on xenial):
$ ifquery sdtest42
address: 192.168.234.129
netmask: 255.255.255.0
broadcast: 192.168.234.255

7. I tried to fix via enabling old style networking
$ systemctl disable systemd-networkd.socket
$ systemctl stop systemd-networkd
$ systemctl restart networking

But it is still behaving the same.
It should fail on all architecture targets just the same.

Currently I assume that the non-x86 CI-test targets have some setup done to let them behave more like they did in the past.
I can't see it yet in my clean test environment, so no fix for today.

Instead for now lets bump the test hint (and add a bugno to this one so that the next taking a look has this pre-check available).
MP with that change available at [2].

[1]: http://autopkgtest.ubuntu.com/packages/ifupdown/bionic/ppc64el
[2]: https://code.launchpad.net/~paelzer/britney/hints-ubuntu-ifupdown-18.04/+merge/341883