Bug 1204782

Summary: [RHEL 7.0 + 7.1] Host configure with DHCP is losing connectivity after some time - dhclient is not running
Product: Red Hat Enterprise Virtualization Manager Reporter: rhev-integ
Component: vdsmAssignee: Ido Barkan <ibarkan>
Status: CLOSED ERRATA QA Contact: Michael Burman <mburman>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 3.5.0CC: adahms, bazulay, cshao, danken, ecohen, eedri, fdeutsch, gklein, hadong, huiwa, ibarkan, initscripts-maint-list, jentrena, jpopelka, kgoldbla, lbopf, lnykryn, lpeer, lsurette, lvernia, mburman, mkalinin, ovasik, pdwyer, sbonazzo, yaniwang, ycui, yeylon, ylavi
Target Milestone: ---Keywords: ZStream
Target Release: 3.5.1Flags: ylavi: Triaged+
Hardware: x86_64   
OS: Linux   
Whiteboard: network
Fixed In Version: vdsm-4.16.13-1.el6ev Doc Type: Bug Fix
Doc Text:
After adopting Red Hat Enterprise Linux 7 and systemd, the work of preparing the environment before the VDSM service starts was managed by systemd itself using the ExecStartPre API. This preparation work was implemented under vdsm_init_common.sh and included network restoration. On DHCP networks, a side effect of this was the spawning of a dhclient daemon by init scripts. Since ExecStartPre API prohibits long-running processes, systemd kills those processes silently, leaving hosts with no dhclient to renew their IP lease. Now, the network restoration part of the preparation work is delegated to another dependent systemd unit resulting in a new 'oneshot' type service that is a vdsmd dependency, called 'vdsm-network'. Also systemd is now told not to kill dhclient processes upon stopping vdsm-network service.
Story Points: ---
Clone Of: 1187244 Environment:
Last Closed: 2015-04-28 18:52:36 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1187244    
Bug Blocks: 1193058    

Comment 1 Ido Barkan 2015-03-26 06:19:44 UTC
the same behavior (systemd is killing dhclient) also occurres during service restart. this is a cavity in the posted solution that can be fixed simply by telling systemd not to do so.

Comment 2 Michael Burman 2015-04-06 06:42:52 UTC
Verified and tested on both RHEL 7.0 + 7.1
rhevm-3.5.1-0.3.el6ev.noarch
vdsm-4.16.13-1.el7ev.x86_64
dhclient-4.2.5-35.el7.x86_64
systemd-208-11.el7_0.6.x86_64

Comment 3 Lior Vernia 2015-04-13 12:37:46 UTC
Ido, please supply doc text describes what's fixed here - you can use the bug this depends on as reference (it described the original issue and workarounds).

Comment 4 Ido Barkan 2015-04-14 06:44:56 UTC
After adopting rhel7 and systemd the work of preparing the environment before VDSM service start was managed by systemd itself using the ExecStartPre API.

This preparation work was implemented under vdsm_init_common.sh and included network restoration. On DHCP networks, a side effect of this might be the spawning of a dhclient daemon by init scripts. Since ExecStartPre API prohibits long running processes as a result, systemd kills those processes silently, leaving hosts with no dhclient to renew their IP lease.

The fix here was to delegate the network restoration part of the preparation work to another dependent systemd unit resulting in a new 'oneshot' type service that is a vdsmd dependency, called 'vdsm-network'. This was done in oVirt gerrit 29441.

An additional change was telling systmd to not kill dhclient processes upon stopping vdsm-network service. This was implemented in oVirt gerrit 39213.

Comment 6 errata-xmlrpc 2015-04-28 18:52:36 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-0904.html