-
Bug
-
Resolution: Won't Do
-
Major
-
None
-
rhel-8.8.0
-
None
-
Important
-
rhel-bootloader
-
ssg_core_services
-
5
-
False
-
False
-
-
None
-
None
-
None
-
None
-
If docs needed, set a value
-
-
All
-
None
-
57,005
Description of problem:
When customers try to install systems over the network and specify nothing for "ip" parameter (hence defaulting to DHCP), but a inst.repo for example, dracut tries forever to get the IP address over DHCP.
If there is no DHCP service listening, which is very common, then the system waits several hours until dracut emergency prompt is reached.
The only message we see is:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
Starting dracut initqueue hook...
[ 9.426013] TECH PREVIEW: NVMe/TCP may not be fully supported.
[ 9.426013] Please review provided documentation for limitations.
[ 9.751210] IPv6: ADDRCONF(NETDEV_UP): enp1s0: link is not ready
[ 9.752011] IPv6: ADDRCONF(NETDEV_UP): enp1s0: link is not ready
[ 9.752538] 8021q: adding VLAN 0 to HW filter on device enp1s0
[ 9.759817] IPv6: ADDRCONF(NETDEV_UP): enp1s0: link is not ready
[ 9.761097] IPv6: ADDRCONF(NETDEV_UP): enp1s0: link is not ready
[ 9.824009] IPv6: ADDRCONF(NETDEV_CHANGE): enp1s0: link becomes ready
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
Then nothing happens, which is quite confusing, because the admin doesn't know what's happening at all.
Booting with rd.debug, we can see that the initqueue loop iterates "slowly" (~ every 100 seconds), so eventually, after days, the dracut prompt will be reached:
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
[ 828.546445] dracut-initqueue[843]: /bin/dracut-initqueue@68(main): main_loop=9
:
[ 919.551251] dracut-initqueue[843]: /bin/dracut-initqueue@68(main): main_loop=10
-------- 8< ---------------- 8< ---------------- 8< ---------------- 8< --------
We need something to drop early, e.g. some absolute timeout, but also we need to report what is currently being waited for.
Version-Release number of selected component (if applicable):
dracut-049
How reproducible:
Always
Steps to Reproduce:
1. Setup a QEMU/KVM with isolated network (no DHCP)
2. Boot by specifying kernel and initrd paths and "inst.repo=xxx" as kernel args
Actual results:
After 900 seconds, still at loop 10
Expected results:
After 180 seconds (the rd.retry default), getting the dracut prompt + regular messages stating "Getting IP address over DHCP" or similar
Additional info:
This is critical for a lot of customers, because DHCP is rarely used
- external trackers