Comment 8 for bug 1940635

Revision history for this message
Simon Chopin (schopin) wrote (last edit ):

I can now confirm that the bug has been introduced strictly by the glibc 2.34, and not another package in the -proposed pocket.

My reproduction steps were as following:

Boot an Ubuntu Impish qemu VM (fully up-to-date (funnily enough, far from being a trivial thing to do, see at the bottom for pointers).

In the VM, install the dpkg-dev and dnsmasq-base packages, get the systemd sources, go into the test subdirectory of the sources, and run the following command:

sudo python3 networkd-test.py DnsmasqClientTest.test_coldplug_dhcp_ip6

It should succeed (it has, in my case).

Then enable the -proposed pocket in the APT sources, with APT preferences looking like so

Package: *
Pin: release a=impish-proposed
Pin-Priority: 50

Finally, update *only* the glibc:

sudo apt install -t impish-proposed libc6

Reboot the VM, go into the test directory, and run the same python3 command as above. It now fails.

To revert to the previous state of the VM (if you haven't made a snapshot), simply use an apt preference > 1000 for the a=impish packages, the resolver will downgrade every package.

I captured straces for both debug runs for the networkd daemon, I'll attach them to the post. For reference, to get them, I changed the ExecStart line in /lib/systemd/system/systemd-networkd.service to

ExecStart=sh -c "strace -o /tmp/networkd.strace --output-separately -p $$$$ & exec /lib/systemd/systemd-networkd"

, added this line

ReadWritePaths=/tmp

and added CAP_SYS_PTRACE to the AmbiantCapabilties and CapabilitiesBoundingSet lines.

How I finally managed to get a VM up and running:

* used `autopkgtest-buildvm-ubuntu-cloud -v -r impish --arch armhf` using autopkgtest git master
-> This gave me an image with credentials and disk space
* Used `mount-image-callback my.img --mountpoint /mnt -- cp -L /mnt/boot/vmlinuz /mnt/boot/initrd.img` to extract the kernel and initrd
-> couldn't figure out how to use a proper bootloader, so direct kernel boot
* use virtio for the img, and add root=/dev/vda1 as a kernel argument when launching qemu.
* fixed /etc/apt/sources.list to point to https://ports.ubuntu.com/ubuntu-ports
* sudo dpkg --remove-architecture i386

EDIT: removed the attached traces as they're of the wrong thing, fixed the strace invocation snippet, and added the post-boot VM configuration fixes