[Bug 2065037] Re: dhcpcd is called before interfaces have carrier causing a 29 seconds boot delay
Andreas Hasenack
2065037 at bugs.launchpad.net
Thu May 23 17:36:58 UTC 2024
I retried the failing armhf dep8 tests and they are now green.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to initramfs-tools in Ubuntu.
https://bugs.launchpad.net/bugs/2065037
Title:
dhcpcd is called before interfaces have carrier causing a 29 seconds
boot delay
Status in initramfs-tools package in Ubuntu:
Fix Released
Status in initramfs-tools source package in Noble:
Fix Committed
Bug description:
[ Impact ]
The boot time can be longer on system that configure their network in
the initrd.
[ Test Plan ]
The affected systems show "Sleeping $time seconds before retrying
getting a DHCP lease" in their boot log. Once applying the fix, this
message should not be found any more and "dhcpcd-10.0.6 starting"
should be only logged once (at most once for IPv4 and once for IPv6
depending on the boot parameters).
There are qemu-net and qemu-net-dnsmasq autopkgtests for this area of
code.
[ Where problems could occur ]
The DHCP code in the initrd are touched. So the boot can be affected.
Also updating initramfs-tools will regenerate the initrd and can cause
issues there (like full disks, etc).
[ Original report ]
In automatically encrypted Clevis+Tang unlock of LUKS encrypted device
(dmcrypt/cryptsetup) - on top of which the ZFS Pool for / resides,
dhcpcd is used in order to obtain automatically an IP address during
initramfs boot.
During this phase, dhcpcd is called before interfaces have carrier
causing a 29 seconds boot delay.
Boot delay is currently 45 seconds, instead of the 15 seconds that it
should.
BUG Initially reported in:
https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/2064926
Relevant Logs:
```
dhcpcd-10.0.6 starting
[...]
no interfaces have a carrier
exiting due to oneshot
dhcpcd exited
Sleeping 29 seconds before retrying getting a DHCP lease
dhcpcd-10.0.6 starting
```
A possible workaround would be to manually edit /usr/share/initramfs-tools/scripts/functions
Changing this:
`for ROUNDTTT in 30 60 90 120; do`
To this:
`for ROUNDTTT in 5 5 5 5; do`
But the proper solution would be to continuously "scan" the state of
the Interface (every Second or so), and wait until the interface is
UP, before deciding to call dhcpcd.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/2065037/+subscriptions
More information about the foundations-bugs
mailing list