After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 632675 - ifupdown hides the connections of the keyfile plugin if there are connections managed by ifupdown (not NM)
ifupdown hides the connections of the keyfile plugin if there are connections...
Status: RESOLVED FIXED
Product: NetworkManager
Classification: Platform
Component: general
0.8.x
Other Linux
: Normal critical
: ---
Assigned To: Dan Williams
Dan Williams
Depends on:
Blocks:
 
 
Reported: 2010-10-20 10:44 UTC by Florian Hackenberger
Modified: 2016-03-11 17:42 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Florian Hackenberger 2010-10-20 10:44:32 UTC
The ifupdown plugin causes the keyfile plugin to break if there is a connection managed by ifupdown (/etc/network/interfaces) and the keyfile plugin is loaded after ifupdown as specified in /etc/NetworkManager/nm-system-settings.conf by default. The reason for this behaviour is the signal emission to unmanaged_specs_changed in the udev_device_added method of plugins/ifupdown/plugin.c:
        if (ALWAYS_UNMANAGE || priv->unmanage_well_known)
                g_signal_emit_by_name (G_OBJECT (self), NM_SYSTEM_CONFIG_INTERFACE_UNMANAGED_SPECS_CHANGED);

The signal is handled by nm-sysconfig-settings.c:unmanaged_specs_changed, which calls nm_system_config_interface_get_unmanaged_specs, which in turn calls load_connections. load_connections iterates all plugins which have already been loaded (only ifupdown), gets all connections and then sets priv->connections_loaded = TRUE; All further calls to load_connections do nothing if this variable is set. Therefore the connections managed by keyfile (and potentially other sysconfig plugins in the future) are invisible to NetworkManager.

A workaround is to change the order of the plugins and make sure ifupdown is the last.

Ubuntu Lucid suffers from this bug. I would like to get the workaround into Ubuntu as a SRU. Can someone from Gnome help with that?

  • #0 nm_sysconfig_settings_get_unmanaged_specs
    at nm-sysconfig-settings.c line 236
  • #1 get_property
    at nm-sysconfig-settings.c line 1409
  • #2 g_object_get_property
    from /usr/lib/libgobject-2.0.so.0
  • #3 notify
    at nm-sysconfig-settings.c line 225
  • #4 g_cclosure_marshal_VOID__PARAM
    from /usr/lib/libgobject-2.0.so.0
  • #5 ??
    from /usr/lib/libgobject-2.0.so.0
  • #6 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #7 ??
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #10 ??
    from /usr/lib/libgobject-2.0.so.0
  • #11 ??
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_object_notify
    from /usr/lib/libgobject-2.0.so.0
  • #13 unmanaged_specs_changed
    at nm-sysconfig-settings.c line 333
  • #14 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #15 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #16 ??
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #18 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #19 udev_device_added
    at plugin.c line 263
  • #20 SCPluginIfupdown_init
    at plugin.c line 439
  • #21 nm_system_config_interface_init
    at nm-system-config-interface.c line 126
  • #22 add_plugin
    at nm-sysconfig-settings.c line 364
  • #23 load_plugins
    at nm-sysconfig-settings.c line 464
  • #24 nm_sysconfig_settings_new
    at nm-sysconfig-settings.c line 1326
  • #25 nm_manager_get
    at nm-manager.c line 2897
  • #26 main
    at NetworkManager.c line 593