Bug 143640

Summary: repeated ifups makes network unusable
Product: [Fedora] Fedora Reporter: Hal Roberts <hroberts>
Component: initscriptsAssignee: Bill Nottingham <notting>
Status: CLOSED RAWHIDE QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 3CC: jvdias, notting, rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 8.08-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-04-15 16:54:34 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:
Bug Depends On:    
Bug Blocks: 136450, 170782    

Description Hal Roberts 2004-12-23 06:16:23 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5)
Gecko/20041111 Firefox/0.6.1 StumbleUpon/1.87

Description of problem:
running ifup multiple times without running ifdown on an interface
setup for dhcp leaves a bunch of dhclient daemons running that ifdown
does not kill.  After a dozen or so of these dhclient daemons are
running, the interface becomes unstable, going down and requiring an
ifup <if>; ifdown <if> to fix it, presumably because of the competing
dhclient daemons.

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. setup eth0 as a dhcp interface
2. ifup eth0
3. ifup eth0
4. ifup eth0
5. ifup eth0
6. ifdown eth0
7. ps aux | grep dhclient
8. notice the three orphaned dhclients
    

Actual Results:  Three orphaned dhclient daemons are left running

Expected Results:  Only one dhclient daemon should be running for a
given interface at a given time

Additional info:

Comment 1 Hal Roberts 2005-01-22 17:40:26 UTC
changed summary to more accurately reflect severity of bug.  This bug
will cause the networking on affected machines to become mysteriously
and worseningly unstable as the machine run.

Comment 2 Bill Nottingham 2005-02-24 22:19:47 UTC
Currently, dhclient does not write its pid file until after it gets
the lease; ergo, if ifup is invoked a second time while dhclient is
still negotiating/waiting, it's impossible to kill the other dhclients
without grovelling through /proc, which isn't really practical.

While it would be a change from upstream, does it make sense to have
dhclient record its pid file immediately?

Comment 3 Jason Vas Dias 2005-02-24 22:35:29 UTC
I agree this is bad behavior on dhclient's part. The first thing it
should do is check for the existence of the pid file; if it exists,
it should then exit; the next thing it should then do is create the
pid file. I'll make changes accordingly for dhcp-3.0.1-40_FC3  /
dhcp-3.0.2-2_FC4 .


Comment 4 Bill Nottingham 2005-02-24 22:39:38 UTC
OK, bounce back to initscripts when you're done.

Comment 5 Jason Vas Dias 2005-02-25 01:16:35 UTC
This is now fixed, in dhcp-3.0.1-40_FC3, and dhcp-3.0.2-2 (FC4) .

Comment 8 Bill Nottingham 2005-04-15 16:54:34 UTC
This should be fixed with the current FC4 devel dhclient. A patch will be added
in initscripts-8.08-1 that will print a more legible error message in the case
where a client is already running rather than just 'failed'.

Comment 10 Jason Vas Dias 2005-07-12 16:55:56 UTC
This was added to RHEL-3 and RHEL-4 because they both have this problem:
repeated ifup attempts cause dhclient to be run more than once for the
same interface, leading to orphaned dhclient processes and progressively
worse and unstable network performance.