Bug 81973

Summary: dhclient only works the second time around
Product: [Retired] Red Hat Linux Reporter: Gabriel Schulhof <gabrielschulhof>
Component: dhcpAssignee: Daniel Walsh <dwalsh>
Status: CLOSED DUPLICATE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-02-21 18:51:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Gabriel Schulhof 2003-01-15 22:12:24 UTC
Description of problem:
First of all, why don't you have dhclient in the list of components ?

The system:
Dell Latitude CPx with PIII700, 128MB RAM, ATI Mach 64, Pegasus-based USB 
ethernet

The kernel:
Vanilla 2.4.20 compiled so RedHat likes it (modular USB, sound, etc.)

The software:
RedHat 8.0

The story:
For the longest time, and across 2.4.18, 2.4.19, and 2.4.20, I would leave my
laptop on, and suspend it instead of powering it down.  Then I would resume at
another location, hotplug would fire up, set up eth0 (pegasus), DHCP an IP, and
be fine.  Then I got Internet service via a cable modem, service that includes 2
free IPs.  So I bought a small hub, hooked up all the cables to get the
connectivity right, and resumed my laptop.  Sure enough, it DHCP-ed an IP via
the hub, via the cable modem, from my ISP, and was fine (I could ping all the
sites I wanted).  But then, I did the unthinkable:  I rebooted my laptop. When
it came up, it hung on "Bringing up interface eth0".  Of course, it couldn't
grab an IP.  After frelling around with the cable modem, hub, et. al., I tried
running 
dhclient eth0
Much to my surprise, it worked.  So, I thought all was well again, and rebooted.
 Of course, it hung on eth0 again.  So I thought there was still something wrong
with my cable modem/hub setup and I went onto another network (at the
University) where the laptop used to grab IPs just fine.  Well, it didn't work
there either (at boot time).  I tried going into runlevel 1 and doing
ifconfig eth0 up
dhclient eth0

That hung, so I hit C-c.  I did dhclient eth0 again, and this time it worked.

Conclusion: For some unknown reason, ever since my reboot at the time when I
started using the hub with the cable modem, even on other networks, I have to
run dhclient, C-c it, then run it again, if I want to grab an IP.  I scripted
this workaround into /etc/sysconfig/network-scripts/ifup like so:

--- ifup        2003-01-15 14:57:36.000000000 -0500
+++ new.ifup    2003-01-15 14:57:15.000000000 -0500
@@ -183,6 +183,13 @@
        FWHACK=1
     fi
 
+    [ -x /sbin/dhclient ] &&
+        {
+        /sbin/dhclient ${DEVICE} &
+        sleep 2
+        /bin/kill -9 $!
+        }
+
     if [ -x /sbin/dhclient ] && /sbin/dhclient ${DHCLIENTARGS} ${DEVICE} ; then
        echo $" done."
     elif [ -z "`pidof -x dhclient`" ] && [ -x /sbin/dhcpcd ] && /sbin/dhcpcd
${DHCPCDARGS} ${DEVICE} ; then

Well, that's not exactly C-c, I know, but you can always replace kill -9 with
kill -INT.  I realize this is a dirty, ugly, rotten workaround, but it's the
only one that seems to work.

Version-Release number of selected component (if applicable):
dhclient-3.0pl1-9

How reproducible:
Every time

Steps to Reproduce:
1. Boot up
2. Watch it hang at "Bringing up interface eth0", even though it had worked a
million times before, on a myriad of different networks where DHCP was the means
of grabbing an IP.
3. Reboot
    
Actual results:
rc hangs on 'network start' for a time exceeding 3 minutes (that's the longest
I've waited for it to move on), namely on bringing up eth0 (pegasus based USB
eth NIC)

Expected results:
Bringing up interface eth0:                   [   OK   ]
within about 5-7 seconds

Additional info:
None

Comment 1 Daniel Walsh 2003-01-16 20:27:50 UTC

*** This bug has been marked as a duplicate of 81974 ***

Comment 2 Red Hat Bugzilla 2006-02-21 18:51:11 UTC
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.