Bug 1345919

Summary: initscripts should tell NetworkManger to ifcfg file even for NM_CONTROLLED=no
Product: Red Hat Enterprise Linux 7 Reporter: Thomas Haller <thaller>
Component: initscriptsAssignee: initscripts Maintenance Team <initscripts-maint-list>
Status: CLOSED ERRATA QA Contact: Leos Pol <lpol>
Severity: high Docs Contact:
Priority: urgent    
Version: 7.3CC: atragler, bgalvani, bmcclain, danken, desktop-qa-list, fdeutsch, jscotka, lpol, lrintel, mburman, mkolaja, ovasik, rkhan, thaller
Target Milestone: rcKeywords: ZStream
Target Release: 7.3   
Hardware: x86_64   
OS: Other   
Whiteboard:
Fixed In Version: initscripts-9.49.31-1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1344411
: 1346947 1347958 (view as bug list) Environment:
Last Closed: 2016-11-04 06:44:16 UTC Type: Bug
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: 1304509, 1326798, 1344411, 1346947, 1347958    

Description Thomas Haller 2016-06-13 12:45:42 UTC
+++ This bug was initially created as a clone of Bug #1344411 +++


Scenario:

- NetworkManager is running, with monitor-connection-files=no (which is the default). Currently NetworkManager is managing the interface "eth0", for example because there is no ifcfg file with NM_CONTROLLED=no.

- user creates a new ifcfg-eth0, with NM_CONTROLLED=no

- user calls `ifup eth0`


Result:

NetworkManager does not learn that it should not manage the configuration. Instead, ifup will activate eth0 without using nmcli, and NetworkManager continues to interfere.

That is due to:

    if ! is_false $NM_CONTROLLED && is_nm_running; then
        nmcli con load "/etc/sysconfig/network-scripts/$CONFIG"
        UUID=$(get_uuid_by_config $CONFIG)
        [ -n "$UUID" ] && _use_nm=true
    fi



Expected Behavior:

ifup should notify NetworkManager to reload the file. Like:

    if is_nm_running; then
        nmcli con load "/etc/sysconfig/network-scripts/$CONFIG"
        if ! is_false $NM_CONTROLLED; then
            UUID=$(get_uuid_by_config $CONFIG)
            [ -n "$UUID" ] && _use_nm=true
        fi
    fi

Comment 1 Lukáš Nykrýn 2016-06-13 12:48:42 UTC
Change looks sane to me -> devel_ack.

Comment 2 Thomas Haller 2016-06-13 12:59:33 UTC
Maybe we should also replace

  nmcli con load "/etc/sysconfig/network-scripts/$CONFIG"

with

  dbus-send --system --print-reply \
      --dest=org.freedesktop.NetworkManager \
      /org/freedesktop/NetworkManager/Settings \
      org.freedesktop.NetworkManager.Settings.LoadConnections \
      array:string:"/etc/sysconfig/network-scripts/$CONFIG"




On a quick test (on my particular machine), the dbus-send call takes about 4ms, while the nmcli call takes 215ms.

Comment 3 Lukáš Nykrýn 2016-06-13 13:13:23 UTC
> On a quick test (on my particular machine), the dbus-send call takes about
> 4ms, while the nmcli call takes 215ms.

I think you should fix this in NM :-).

Comment 4 Fabian Deutsch 2016-06-13 13:24:26 UTC
+1

Comment 8 Dan Kenigsberg 2016-06-15 08:15:45 UTC
Would you be kind to release this fix in a quick z-stream, as it affects RHEV-4.0 badly

Comment 9 Bronce McClain 2016-06-15 15:09:13 UTC
Thanks Marcel for the PMApproval for z-stream inclusion. Do we know yet which z-stream it will be included in?

Comment 14 errata-xmlrpc 2016-11-04 06:44:16 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-2016-2456.html