gnome-control-center crashed with SIGSEGV in add_connection_info_find()

Bug #949743 reported by Gytis Raciukaitis on 2012-03-08
140
This bug affects 17 people
Affects Status Importance Assigned to Milestone
NetworkManager
Fix Released
Medium
network-manager (Ubuntu)
High
Mathieu Trudel-Lapierre
Precise
High
Mathieu Trudel-Lapierre

Bug Description

[Impact]
Removing a pairing or toggling the killswitch when a PAN/DUN capable device is paired to the bluetooth system triggers a crash because bluetooth keeps a reference to the connections in NMRemoteSettings objects that have already been freed, which causes update signals to still be called on these objects.

[Development Fix]
Fixed upstream, as http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=494f0a2e2047ca42adc73ecd6080068ce1fc9687. See https://bugzilla.gnome.org/show_bug.cgi?id=674484 (upstream bug). This change only affects NetworkManager's code, doesn't require rebuild of any dependant package.

[Stable Fix]
See above "Development fix".

[Test Case]
1) Connect a phone capable of DUN or PAN to bluetooth control panel.
2) Remove the connection with the "-" button in bluetooth control panel.

[Regression Potential]
Low, current handling was clearly wrong. This affects users of NMRemoteSettings only, so limited to a distinct number of packages: network-manager (for the nmcli binary), network-manager-gnome (nm-applet), gnome-shell (for the network indicator).

---------

The crash is reported while using the bluetooth settings. The way to trigger it:
1. While bluetooth is enabled - open bluetooth settings, everything works.
2. Turn off bluetooth using laptop wireless killswitch (I'm on Thinkpad W500)
3. Turn on the killswitch
4. Bluetooth settings don't reflect the fact that bluetooth is enabled (cannot enable or disable in settings) now and a crash is reported.
5. Restarting bluetooth service fixes the settings behaviour

ProblemType: Crash
DistroRelease: Ubuntu 12.04
Package: gnome-control-center 1:3.3.91-0ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-18.28-generic 3.2.9
Uname: Linux 3.2.0-18-generic x86_64
ApportVersion: 1.94.1-0ubuntu1
Architecture: amd64
CrashCounter: 1
Date: Wed Mar 7 23:50:03 2012
ExecutablePath: /usr/bin/gnome-control-center
ProcCmdline: gnome-control-center bluetooth
SegvAnalysis:
 Segfault happened at: 0x7f0fc6cfc4ac: mov 0x28(%rax),%rdx
 PC (0x7f0fc6cfc4ac) ok
 source "0x28(%rax)" (0x00000028) not located in a known VMA region (needed readable region)!
 destination "%rdx" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: gnome-control-center
StacktraceTop:
 ?? () from /usr/lib/libnm-glib.so.4
 ?? () from /usr/lib/libnm-glib.so.4
 g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
 ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
 g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
Title: gnome-control-center crashed with SIGSEGV in g_closure_invoke()
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo vboxusers
usr_lib_gnome-control-center:
 activity-log-manager-control-center 0.9.3-0ubuntu1
 gnome-bluetooth 3.2.2-0ubuntu3
 indicator-datetime 0.3.90-0ubuntu1

Gytis Raciukaitis (noxxious) wrote :

StacktraceTop:
 add_connection_info_find (self=0x7f0fdaf17a10, connection=0x7f0fdaf78f70) at nm-remote-settings.c:120
 connection_removed_cb (remote=0x7f0fdaf78f70, user_data=<optimized out>) at nm-remote-settings.c:210
 g_closure_invoke (closure=0x7f0fda9abc40, return_value=0x0, n_param_values=1, param_values=0x7f0fdaf9d7a0, invocation_hint=<optimized out>) at /build/buildd/glib2.0-2.31.20/./gobject/gclosure.c:777
 signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=<optimized out>, emission_return=0x0, instance_and_params=0x7f0fdaf9d7a0) at /build/buildd/glib2.0-2.31.20/./gobject/gsignal.c:3547
 g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=0, var_args=<optimized out>) at /build/buildd/glib2.0-2.31.20/./gobject/gsignal.c:3295

Changed in gnome-control-center (Ubuntu):
importance: Undecided → Medium
summary: - gnome-control-center crashed with SIGSEGV in g_closure_invoke()
+ gnome-control-center crashed with SIGSEGV in add_connection_info_find()
tags: removed: need-amd64-retrace
visibility: private → public
affects: gnome-control-center (Ubuntu) → network-manager (Ubuntu)
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in network-manager (Ubuntu):
status: New → Confirmed
Changed in network-manager (Ubuntu):
importance: Medium → Low
importance: Low → High
assignee: nobody → Mathieu Trudel-Lapierre (mathieu-tl)
Changed in network-manager:
importance: Unknown → Medium
status: Unknown → Confirmed
Changed in network-manager:
status: Confirmed → Fix Released
description: updated
Changed in network-manager (Ubuntu Precise):
status: Confirmed → In Progress

The fix was uploaded to -proposed, awaiting approval by the SRU team.

Hello Gytis, or anyone else affected,

Accepted network-manager into precise-proposed. The package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in network-manager (Ubuntu Precise):
status: In Progress → Fix Committed
tags: added: verification-needed

Could someone on the bug report please confirm that this is fixed after enabling proposed and upgrading the network-manager package? See Martin Pitt's comment on how this can be done ;)

Giovanni Pardini (gio.pardini) wrote :

I can confirm that it is fixed for me.

Martin Pitt (pitti) on 2012-05-06
tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package network-manager - 0.9.4.0-0ubuntu4

---------------
network-manager (0.9.4.0-0ubuntu4) precise-proposed; urgency=low

  * debian/patches/quit_dhclient_on_exit.patch: make sure we kill dhclient when
    we are stopping. (LP: #963106)
  * debian/patches/lp949743_ensure_remoteconnection_disconnects_494f0a2.patch:
    make sure NMRemoteConnection objects have their signals disconnected.
    (LP: #949743)
  * debian/patches/lp990011_use_tempaddr_sysctl_default.patch: *really* fix the
    use_tempaddr sysctl to properly be set to 2 on the wired interface.
    (LP: #990011)
 -- Mathieu Trudel-Lapierre <email address hidden> Fri, 27 Apr 2012 18:13:56 -0400

Changed in network-manager (Ubuntu):
status: In Progress → Fix Released
Changed in network-manager (Ubuntu Precise):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.