[pkg-dhcp-devel] Bug#459813: [madduck at debian.org: Bug#459813: dhclient unnecessarily brings down interface on lease renew]

Andrew Pollock apollock at debian.org
Sun Jul 11 17:01:16 UTC 2010


Hi,

This bug was reported to us some time ago.

Mike Stroyan has an update at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=459813#21, which suggests
what the problem may be (architectural).

The entire bug history is at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=459813

Please maintain the Cc in any replies to keep our bug tracking system in the
loop.

regards

Andrew

----- Forwarded message from martin f krafft <madduck at debian.org> -----

Subject: Bug#459813: dhclient unnecessarily brings down interface on lease renew
Reply-To: martin f krafft <madduck at debian.org>, 459813 at bugs.debian.org
Resent-From: martin f krafft <madduck at debian.org>
Resent-To: debian-bugs-dist at lists.debian.org
Resent-CC: peloy at debian.org (Eloy A. Paris)
Resent-Date: Tue, 08 Jan 2008 21:15:04 +0000
Resent-Message-ID: <handler.459813.B.11998268025082 at bugs.debian.org>
Resent-Sender: owner at bugs.debian.org
X-Debian-PR-Message: report 459813
X-Debian-PR-Package: dhcp3-client
X-Debian-PR-Keywords: 
X-Debian-PR-Source: dhcp3
X-Spam-Checker-Version: SpamAssassin 3.1.4-bugs.debian.org_2005_01_02 
	(2006-07-26) on rietz.debian.org
X-Spam-Level: 
X-Spam-Status: No, score=-13.5 required=4.0 tests=BAYES_00,FORGED_RCVD_HELO,
	FOURLA,FROMDEVELOPER,HAS_PACKAGE,INFO_TLD,X_DEBBUGS_NO_ACK 
	autolearn=no version=3.1.4-bugs.debian.org_2005_01_02
From: martin f krafft <madduck at debian.org>
To: Debian Bug Tracking System <submit at bugs.debian.org>
X-Reportbug-Version: 3.39
X-Virus-Scanned: ClamAV 0.92/5443/Tue Jan  8 18:35:47 2008 on seamus.madduck.net
X-Virus-Status: Clean

Package: dhcp3-client
Version: 3.0.6.dfsg-1
Severity: important

When dhclient renewed a lease, it *should* call dhclient-script with
RENEW. If it failed, it *should* call the script with EXPIRE.

However, dhclient calls the script with EXPIRE as soon as the lease
expires, issues a PREINIT, and *then* seeks to renew the lease and
issues a BOUND event when successful. This is quite stupid as the
machine goes offline for a second, and it's also not what the
manpages says:

       The  DHCP  client  has  failed  to  renew  its  lease or
       acquire a new one, and the lease has expired.   The IP
       address must be relinquished, and all related parameters
       should be deleted, as in RENEW and REBIND.

I noticed this while developing netconf. Look at its debug output
during a normal renew:

dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_server_identifier', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_lease_time', '30']
dhclientProxy_eth0: DEBUG: received pair: ['old_ip_address', '192.168.14.125']
dhclientProxy_eth0: DEBUG: received pair: ['pid', '3106']
dhclientProxy_eth0: DEBUG: received pair: ['old_expiry', '1199826651']
dhclientProxy_eth0: DEBUG: received pair: ['old_broadcast_address', '192.168.14.127']
dhclientProxy_eth0: DEBUG: received pair: ['old_subnet_mask', '255.255.255.128']
dhclientProxy_eth0: DEBUG: received pair: ['PATH', '/usr/ucb:/usr/bin:/usr/sbin:/bin:/sbin']
dhclientProxy_eth0: DEBUG: received pair: ['interface', 'eth0']
dhclientProxy_eth0: DEBUG: received pair: ['old_domain_name_servers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['old_domain_name', 'stranger.oerlikon.madduck.net']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_message_type', '5']
dhclientProxy_eth0: DEBUG: received pair: ['old_routers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['reason', 'EXPIRE']
dhclientProxy_eth0: DEBUG: received pair: ['old_filename', '/debian-installer/i386/pxelinux.0']
dhclientProxy_eth0: DEBUG: received pair: ['old_network_number', '192.168.14.0']
dhclientProxy_eth0: DEBUG: received pair: ['old_netbios_name_servers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: processing data received from dhclient...
dhclientProxy_eth0: INFO: got EXPIRE/FAIL: removing address from interface eth0
dhclientProxy_eth0: DEBUG: queueing event: <Event id=132 type=IPADDR completed=0 params={'ACTION': 'delete', 'PREFIXLEN': '255.255.255.128', 'IFACE': 'eth0', 'ADDRFAMILY': 'inet', 'ADDRESS': '192.168.14.125'}>
MainThread: DEBUG: received event: <Event id=132 type=IPADDR completed=0 params={'ACTION': 'delete', 'PREFIXLEN': '255.255.255.128', 'IFACE': 'eth0', 'ADDRFAMILY': 'inet', 'ADDRESS': '192.168.14.125'}>
MainThread: INFO: deleting addresses on interface eth0: inet 192.168.14.125/25
MainThread: DEBUG: received SIGCHLD
dhclientProxy_eth0: DEBUG: received pair: ['interface', 'eth0']
dhclientProxy_eth0: DEBUG: received pair: ['PATH', '/usr/ucb:/usr/bin:/usr/sbin:/bin:/sbin']
dhclientProxy_eth0: DEBUG: received pair: ['reason', 'PREINIT']
dhclientProxy_eth0: DEBUG: received pair: ['pid', '3106']
dhclientProxy_eth0: DEBUG: processing data received from dhclient...
dhclientProxy_eth0: INFO: got PREINIT: upping interface eth0
dhclientProxy_eth0: DEBUG: queueing event: <Event id=133 type=IPLINK completed=0 params={'LINK_STATE': 'up', 'IFACE': 'eth0'}>
MainThread: DEBUG: received event: <Event id=133 type=IPLINK completed=0 params={'LINK_STATE': 'up', 'IFACE': 'eth0'}>
MainThread: INFO: bringing interface eth0 up
MainThread: DEBUG: received SIGCHLD
dhclientProxy_eth0: DEBUG: received pair: ['new_filename', '/debian-installer/i386/pxelinux.0']
dhclientProxy_eth0: DEBUG: received pair: ['pid', '3106']
dhclientProxy_eth0: DEBUG: received pair: ['old_expiry', '1199826651']
dhclientProxy_eth0: DEBUG: received pair: ['new_broadcast_address', '192.168.14.127']
dhclientProxy_eth0: DEBUG: received pair: ['new_domain_name', 'stranger.oerlikon.madduck.net']
dhclientProxy_eth0: DEBUG: received pair: ['PATH', '/usr/ucb:/usr/bin:/usr/sbin:/bin:/sbin']
dhclientProxy_eth0: DEBUG: received pair: ['new_dhcp_lease_time', '30']
dhclientProxy_eth0: DEBUG: received pair: ['old_filename', '/debian-installer/i386/pxelinux.0']
dhclientProxy_eth0: DEBUG: received pair: ['new_dhcp_server_identifier', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['new_domain_name_servers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['new_network_number', '192.168.14.0']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_message_type', '5']
dhclientProxy_eth0: DEBUG: received pair: ['new_routers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['new_dhcp_message_type', '5']
dhclientProxy_eth0: DEBUG: received pair: ['new_netbios_name_servers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['new_ip_address', '192.168.14.125']
dhclientProxy_eth0: DEBUG: received pair: ['old_netbios_name_servers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_lease_time', '30']
dhclientProxy_eth0: DEBUG: received pair: ['new_expiry', '1199826682']
dhclientProxy_eth0: DEBUG: received pair: ['old_broadcast_address', '192.168.14.127']
dhclientProxy_eth0: DEBUG: received pair: ['new_subnet_mask', '255.255.255.128']
dhclientProxy_eth0: DEBUG: received pair: ['old_routers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['interface', 'eth0']
dhclientProxy_eth0: DEBUG: received pair: ['old_network_number', '192.168.14.0']
dhclientProxy_eth0: DEBUG: received pair: ['old_dhcp_server_identifier', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['reason', 'BOUND']
dhclientProxy_eth0: DEBUG: received pair: ['old_subnet_mask', '255.255.255.128']
dhclientProxy_eth0: DEBUG: received pair: ['old_domain_name_servers', '192.168.14.1']
dhclientProxy_eth0: DEBUG: received pair: ['old_domain_name', 'stranger.oerlikon.madduck.net']
dhclientProxy_eth0: DEBUG: received pair: ['old_ip_address', '192.168.14.125']
dhclientProxy_eth0: DEBUG: processing data received from dhclient...
dhclientProxy_eth0: INFO: got BOUND/REBOOT: configuring interface %s eth0
dhclientProxy_eth0: DEBUG: queueing event: <Event id=134 type=IPADDR completed=0 params={'ACTION': 'set', 'PREFIXLEN': '255.255.255.128', 'IFACE': 'eth0', 'ADDRFAMILY': 'inet', 'ADDRESS': '192.168.14.125'}>
MainThread: DEBUG: received event: <Event id=134 type=IPADDR completed=0 params={'ACTION': 'set', 'PREFIXLEN': '255.255.255.128', 'IFACE': 'eth0', 'ADDRFAMILY': 'inet', 'ADDRESS': '192.168.14.125'}>
MainThread: INFO: seting addresses on interface eth0: inet 192.168.14.125/25
MainThread: DEBUG: received SIGCHLD

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.23-1-amd64 (SMP w/1 CPU core)
Locale: LANG=en_GB, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dhcp3-client depends on:
ii  debconf [debconf-2.0]       1.5.17       Debian configuration management sy
ii  debianutils                 2.28.2       Miscellaneous utilities specific t
ii  dhcp3-common                3.0.6.dfsg-1 common files used by all the dhcp3
ii  libc6                       2.7-5        GNU C Library: Shared libraries

dhcp3-client recommends no packages.

-- debconf information:
  dhcp3-client/dhclient-needs-restarting:
* dhcp3-client/dhclient-script_moved:


-- 
 .''`.   martin f. krafft <madduck at debian.org>
: :'  :  proud Debian developer, author, administrator, and user
`. `'`   http://people.debian.org/~madduck - http://debiansystem.info
  `-  Debian - when you have better things to do than fixing systems



----- End forwarded message -----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-dhcp-devel/attachments/20100711/667d58a4/attachment.pgp>


More information about the pkg-dhcp-devel mailing list