Bug 741984

Summary: NetworkManager creates ifcfg scripts for auto wireless networks as "ONBOOT=yes"
Product: [Fedora] Fedora Reporter: Paolo Bonzini <pbonzini>
Component: NetworkManagerAssignee: Dan Williams <dcbw>
Status: CLOSED WORKSFORME QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 19CC: dcbw, jklimes, pbonzini, psimerda
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-05-07 13:36:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
bootchart showing multiple nmcli processes being spawned
none
patch posted upstream none

Description Paolo Bonzini 2011-09-28 17:26:31 UTC
Description of problem:
In the attached bootchart you can see ~3 seconds wasted looking at networking scripts for auto wireless networks.

Version-Release number of selected component (if applicable):
NetworkManager-0.8.9997-6.git20110721.fc15.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Find a random unprotected wireless AP
2. Look at /etc/sysconfig/networking-scripts/ifcfg-Auto*
  
Actual results:
The script has ONBOOT=yes

Expected results:
The script has ONBOOT=no

Comment 1 Paolo Bonzini 2011-09-28 17:27:40 UTC
Created attachment 525375 [details]
bootchart showing multiple nmcli processes being spawned

Comment 2 Jirka Klimes 2011-09-29 08:06:32 UTC
That's the way how it works. When you click on a network in nm-applet, the profile is created with ONBOOT=yes, so it can be activated automatically next time. I think the same applies for the GnomeShell indicator.
However, the profile is not automatically created without user interaction (except for a bug in GnomeShell - see bug 717665)
So when you don't want profiles to be created don't click on networks or remove undesired connections with editor. You are always free to edit connection profiles via nm-connection-editor to your needs as well.

Comment 3 Paolo Bonzini 2011-09-29 10:34:31 UTC
I understand, but then perhaps ONBOOT is not the right indicator and a new one should be invented.  The user shouldn't waste boot time waiting for NetworkManager to try the SSIDs for every airport or cafeteria that they have ever visited---especially considering that in all likelihood the wireless card hasn't even finished scanning at the time /etc/init.d/network runs.

Comment 4 Paolo Bonzini 2011-09-29 12:11:20 UTC
Created attachment 525543 [details]
patch posted upstream

Comment 5 Paolo Bonzini 2011-09-29 15:43:47 UTC
Didn't mention that the 3 seconds are with wireless *disabled* (offline mode).  For wireless enable, that goes up by a factor of ~100 thanks to bug 742292.

Comment 6 Fedora End Of Life 2013-04-03 14:23:01 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.

(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19

Comment 7 Pavel Šimerda (pavlix) 2013-05-07 13:36:59 UTC
(In reply to comment #3)
> I understand, but then perhaps ONBOOT is not the right indicator and a new
> one should be invented.  The user shouldn't waste boot time waiting

You have a point. ONBOOT and AUTO (or something like that) should be IMO separated (missing AUTO defaulting to ONBOOT value for compatibility). This, together with nm-wait-online or similar tool waiting for the NM boot process to finish instead of waiting for a single good connection, would greatly improve systemd integration.

> for
> NetworkManager to try the SSIDs for every airport or cafeteria that they
> have ever visited

But nobody currently waits for NetworkManager to boot and NetworkManager doesn't even try every SSID before scanning is done.

Closing because current behavior doesn't cause any delays and it will be taken into account if it's going to change.

Comment 8 Paolo Bonzini 2013-05-08 17:31:27 UTC
> But nobody currently waits for NetworkManager to boot and NetworkManager 
> doesn't even try every SSID before scanning is done.

NetworkManager doesn't, but network.service does.  Using ONBOOT means that *network.service* will try all SSIDs and make boot slow.  Still, the bug is in NetworkManager who is abusing ONBOOT.

That said, it's been a while since I actually tried this, as I have now disabled network.service for quite some time.

Comment 9 Dan Williams 2013-05-08 20:52:30 UTC
(In reply to comment #7)
> (In reply to comment #3)
> > I understand, but then perhaps ONBOOT is not the right indicator and a new
> > one should be invented.  The user shouldn't waste boot time waiting
> 
> You have a point. ONBOOT and AUTO (or something like that) should be IMO
> separated (missing AUTO defaulting to ONBOOT value for compatibility). This,

Disagree.  ONBOOT is the same thing as "autoconnect me".  There's no valid use-case for "automatically connect to this network at boot time, but *don't* automatically connect to it at any other time" which is what separating ONBOOT and AUTO would do.

The network service is not a daemon and had no concept of connecting to networks when they are available, thus it can only try every single configured network you've got.  This is a deficiency of the network service, because that's just the way the network service is.  And NetworkManager isn't going to separate ONBOOT just to placate the less capable network service.

Second, the network service can't handle WPA or Dynamic WEP networks anyway, so most of the connections people actually use these days simply won't work with it.  Arguably the network service should ignore any ifcfg file that is for WPA or has 802.1x keys, which would probably help your bootup speed.

Comment 10 Pavel Šimerda (pavlix) 2013-05-09 08:14:35 UTC
(In reply to comment #9)
> (In reply to comment #7)
> > (In reply to comment #3)
> > > I understand, but then perhaps ONBOOT is not the right indicator and a new
> > > one should be invented.  The user shouldn't waste boot time waiting
> > 
> > You have a point. ONBOOT and AUTO (or something like that) should be IMO
> > separated (missing AUTO defaulting to ONBOOT value for compatibility). This,
> 
> Disagree.  ONBOOT is the same thing as "autoconnect me".  There's no valid
> use-case for "automatically connect to this network at boot time, but
> *don't* automatically connect to it at any other time" which is what
> separating ONBOOT and AUTO would do.

Let's move the discussion to:

https://bugzilla.redhat.com/show_bug.cgi?id=816655#c12

There's more information for this suggestion.

Comment 11 Paolo Bonzini 2013-05-09 16:59:37 UTC
I think the two bugs are different.  This is an interoperability bug with network.service.

> This is a deficiency of the network service, because that's just the way the 
> network service is.  And NetworkManager isn't going to separate ONBOOT just to > placate the less capable network service.

Sure.  But ifcfg is the network service's file format, and NetworkManager is using it.  If network manager means auto rather than on-boot, it must use a separate key and perhaps set ONBOOT when it makes sense (e.g. for eth0).

> Second, the network service can't handle WPA or Dynamic WEP networks anyway, 
> so most of the connections people actually use these days simply won't work 
> with it.

Captive portals (airports, hotels, coffee shops, etc.) still use open networks a lot.

Comment 12 Pavel Šimerda (pavlix) 2013-05-09 17:16:43 UTC
(In reply to comment #11)
> I think the two bugs are different.

The reference to other bug was meant as a short answer to Dan Williams's remark.

> This is an interoperability bug with network.service.

The problem, as you described it, doesn't IMO happen with NetworkManager at all as there is no separate booting time and nobody is waiting for NetworkManager to finish all ONBOOT=yes connections.

> > This is a deficiency of the network service, because that's just the way the 
> > network service is.  And NetworkManager isn't going to separate ONBOOT just to > placate the less capable network service.
> 
> Sure.  But ifcfg is the network service's file format, and NetworkManager is
> using it.  If network manager means auto rather than on-boot, it must use a
> separate key and perhaps set ONBOOT when it makes sense (e.g. for eth0).

There is currently no such distinction in ifcfg, nor in NetworkManager. And only /etc/init.d/networks indicate that it finished the booting stage (by simply exitting), NetworkManager doesn't do that. Therefore no service and no application can specifically wait for all ONBOOT connections to be tried.

If you think there should by such a possibility, you can file a bug report upstream for that or wait whether someone else does it.

> > Second, the network service can't handle WPA or Dynamic WEP networks anyway, 
> > so most of the connections people actually use these days simply won't work 
> > with it.
> 
> Captive portals (airports, hotels, coffee shops, etc.) still use open
> networks a lot.

Still NetworkManager handles them better, as it can use scanning results to choose the connection :).