Public bug reported:

Cloud instances that configure network over DHCP in initramfs, will go
through a "for ROUNDTTT in 30 60 90 120" loop inside
configure_networking().

If the DHCP server is only offering a IPv6 (no IPv4), the instance will
take more than 5 minutes to boot, because it will first go through a
loop trying to obtain IPv4 IP (dhcpcd -1KL -t $ROUNDTTT -4
${DEVICE:+"${DEVICE}"}) for 30+60+90+120 seconds (total 300 seconds - 5
minutes), which won't work, until it times out, and then resume the boot
process.

In https://bugs.launchpad.net/ubuntu/+source/initramfs-
tools/+bug/2091904 initramfs-tools improved this situation, looking for
IPv6 information in /sys/firmware/ibft/ethernet*/ip-addr to decide
whether to look for IPv6 or IPv4, however that assumes that IP
information will be available through ibft, which is not always true.

If no IP information is available through ibft, we still go through this
incorrect loop, delaying the boot process.

Example from an instance booting through virtual disks, with no ibft,
and IPv6-only on Oracle Cloud:

```
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-6.12.0-1001-oracle 
root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyS0 
nvme.shutdown_timeout=10 libiscsi.debug_libiscsi_eh=1 crash_kexec_post_notifiers
[...]
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... [    
2.863248] No iBFT detected.
Could not setup fw entries.
Begin: Waiting up to 180 secs for any network device to become available ... 
done.
dhcpcd-10.1.0 starting
dev: loaded udev
[    2.906793] 8021q: 802.1Q VLAN Support v1.8
[    2.917496] 8021q: adding VLAN 0 to HW filter on device enp0s5
DUID 00:03:00:01:02:00:17:36:95:6d
enp0s5: IAID 17:36:95:6d
enp0s5: carrier acquired
enp0s5: IAID 17:36:95:6d
[    2.983134] workqueue: drm_fb_helper_damage_work hogged CPU for >10000us 7 
times, consider switching to WQ_UNBOUND
enp0s5: soliciting a DHCP lease
timed out
exiting due to oneshot
dhcpcd exited
Sleeping 0 seconds before retrying getting a DHCP lease
dhcpcd-10.1.0 starting
dev: loaded udev
DUID 00:03:00:01:02:00:17:36:95:6d
enp0s5: IAID 17:36:95:6d
enp0s5: soliciting a DHCP lease
timed out
exiting due to oneshot
dhcpcd exited
Sleeping 0 seconds before retrying getting a DHCP lease
dhcpcd-10.1.0 starting
dev: loaded udev
DUID 00:03:00:01:02:00:17:36:95:6d
enp0s5: IAID 17:36:95:6d
enp0s5: soliciting a DHCP lease
timed out
exiting due to oneshot
dhcpcd exited
Sleeping 0 seconds before retrying getting a DHCP lease
dhcpcd-10.1.0 starting
dev: loaded udev
DUID 00:03:00:01:02:00:17:36:95:6d
enp0s5: IAID 17:36:95:6d
enp0s5: soliciting a DHCP lease
timed out
exiting due to oneshot
dhcpcd exited
Sleeping 0 seconds before retrying getting a DHCP lease
no search or nameservers found in /run/net-.conf /run/net-*.conf 
/run/net6-*.conf
[  303.057039] Loading iSCSI transport class v2.0-870.
[  303.069113] iscsi: registered transport (tcp)
Could not get boot entry.
done.
```

Full log: https://pastebin.ubuntu.com/p/Sk5dcvpPyY/

We can see such loop between lines 1136 and 1176.

** Affects: initramfs-tools (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2098515

Title:
  IPv6-only (single stack) instances configuring network over dhcp in
  initramfs will take a long time to boot due to loop in dhcpcd -4

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/2098515/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to