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