Bug 1347958

Summary: initscripts should tell NetworkManger to ifcfg file even for NM_CONTROLLED=no
Product: [Fedora] Fedora Reporter: Dan Kenigsberg <danken>
Component: initscriptsAssignee: Lukáš Nykrýn <lnykryn>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: urgent    
Version: 24CC: atragler, bgalvani, bmcclain, danken, desktop-qa-list, fdeutsch, initscripts-maint-list, jonathan, jscotka, lnykryn, lrintel, mburman, mkolaja, ovasik, qe-baseos-daemons, rkhan, thaller, zbyszek
Target Milestone: ---Keywords: ZStream
Target Release: ---   
Hardware: x86_64   
OS: Other   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1345919 Environment:
Last Closed: 2016-06-22 13:19:56 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: 1345919    
Bug Blocks: 1304509, 1326798, 1344411, 1346947    

Description Dan Kenigsberg 2016-06-19 07:09:11 UTC
+++ This bug was initially created as a clone of Bug #1345919 +++

+++ 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

--- Additional comment from Lukáš Nykrýn on 2016-06-13 15:48:42 IDT ---

Change looks sane to me -> devel_ack.

--- Additional comment from Thomas Haller on 2016-06-13 15:59:33 IDT ---

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 1 Lukáš Nykrýn 2016-06-22 13:19:56 UTC
Fixed in upstream https://git.fedorahosted.org/cgit/initscripts.git/commit/?id=61fb1cb4efd62120ffbc021d7fdee1cd25059c08 will ne in next version of initscripts.

Comment 2 Dan Kenigsberg 2016-06-22 14:37:26 UTC
I'm requesting to have it in currently-supported Fedora versions. Would it be available in f24?

Comment 3 Lukáš Nykrýn 2016-07-11 08:56:38 UTC
Just one more patch and I will do a new release of initscripts and include it in fedora.