indicator-session-service crashed with SIGSEGV in dbus_upower_get_can_suspend()

Bug #1061844 reported by Ries on 2012-10-04
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Session Menu
Fix Committed
Charles Kerr
indicator-session (Ubuntu)

Bug Description


 * indicator-session-service crashes, so session menu clicks won't be processed.

 * The crash is being caused by a race condition where the upower proxy is used
   before it's been created. The fix is to wrap the upower proxy use inside a
   "if (upower_proxy != NULL) {...}" block. Only the code directly querying
   the upower proxy is moved into the block.

[Test Case]

 * There's no straightforward way to replicate the race condition needed
   to trigger this crash. indicator-session-service asynchronously creates
   a upower proxy on the system bus. The crash occurs iff the menuitems need
   to get refreshed before the bus returns the upower proxy.

[Regression Potential]

 * IMO the regression risk is low because of the narrow scope of the change.

[Other info]

 * This bug was introduced in indicator-session 12.10.4, released on Oct 3.
   P and earlier releases of Q aren't affected.


no status bar

ProblemType: Crash
DistroRelease: Ubuntu 12.10
Package: indicator-session 12.10.4-0ubuntu1
ProcVersionSignature: Ubuntu 3.5.0-16.25-generic 3.5.4
Uname: Linux 3.5.0-16-generic x86_64
ApportVersion: 2.6.1-0ubuntu1
Architecture: amd64
Date: Thu Oct 4 21:41:56 2012
ExecutablePath: /usr/lib/indicator-session/indicator-session-service
InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Release amd64 (20110427)
ProcCmdline: /usr/lib/indicator-session/indicator-session-service
 Segfault happened at: 0x417249: mov (%rbx),%rdi
 PC (0x00417249) ok
 source "(%rbx)" (0x00000000) not located in a known VMA region (needed readable region)!
 destination "%rdi" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: indicator-session
 ?? ()
 ?? ()
 ?? ()
 ?? ()
 __libc_start_main () from /lib/x86_64-linux-gnu/
Title: indicator-session-service crashed with SIGSEGV in __libc_start_main()
UpgradeStatus: Upgraded to quantal on 2012-10-02 (1 days ago)

Related branches

Ries (riesvdam) wrote :

 dbus_upower_get_can_suspend (object=0x0) at dbus-upower.c:1086
 on_upower_properties_changed (mgr=mgr@entry=0x1d19860) at session-menu-mgr.c:254
 session_menu_mgr_new (session_dbus=<optimized out>, greeter_mode=1) at session-menu-mgr.c:1195
 main (argc=<optimized out>, argv=<optimized out>) at session-service.c:89

Changed in indicator-session (Ubuntu):
importance: Undecided → Medium
summary: - indicator-session-service crashed with SIGSEGV in __libc_start_main()
+ indicator-session-service crashed with SIGSEGV in
+ dbus_upower_get_can_suspend()
tags: removed: need-amd64-retrace
Launchpad Janitor (janitor) wrote :

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

Changed in indicator-session (Ubuntu):
status: New → Confirmed
Charles Kerr (charlesk) wrote :

Looks like this was introduced in for i-session 12.10.4, written by Ted and approved by both Lars and Charles. We *ALL* have blame in this one! :)

Changed in indicator-session:
importance: Undecided → Medium
status: New → In Progress
assignee: nobody → Charles Kerr (charlesk)
milestone: none → 12.10.5
visibility: private → public
Charles Kerr (charlesk) on 2012-10-10
description: updated
Changed in indicator-session:
status: In Progress → Fix Committed
tags: added: running-unity
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package indicator-session - 12.10.5daily13.01.25-0ubuntu1

indicator-session (12.10.5daily13.01.25-0ubuntu1) raring; urgency=low

  [ Mathieu Trudel-Lapierre ]
  * debian/rules:
    - Use the dh sequencer with autoreconf.
    - Override dh_autoreconf to run
  * debian/control:
    - Add dh-autoreconf to Build-Depends.
    - Add gnome-common to Build-Depends.
    - Add libgtest-dev, libdbustest1-dev, dbus-test-runner to Build-Depends.
    - Adjust style to be consistent and use trailing commas in lists.
    - Update Vcs-Bzr and Vcs-Browser fields and add notice for uploaders.
    - Remove libpackagekit-glib2-dev and libpolkit-gobject-1-dev
      from Build-Depends. (LP: #1085100)
    - Remove packagekit from Recommends
    - Add XS-Testsuite: autopkgtest.
    - Add libxorg-gtest-dev to Build-Depends.
  * debian/tests:
    - Add start-service test; verify that the indicator can be started from
    - Add debian/tests/control.
  * Automatic snapshot from revision 373 (bootstrap):
    - Check to make sure that create_display_proxy() succeeded before using the
      proxy pointer that gets returned. (LP: #1078119)
    - Don't lock the session when clicking on the current user. (LP: #1024392)
    - Hide 'start screen saver' action, if it's locked down. (LP: #1066825)
    - Use the same icons in the greeter as in the user session (LP: #1049244)
    - Test upower_proxy for NULL before using it. (LP: #1061844)
  * Move TestCanStartService into a separate make target "localcheck"; so that
    the other tests can successfully run, and this one be used as an
    integration check.
  * debian/control: temporarily comment out the XS-Testsuite entry to disable
    autopkgtest until the tests really work properly.

  [ Sebastien Bacher ]
  * debian/control:
    - clean deprecated Build-Depends on gconf and dbusglib

  [ Didier Roche ]
  * run tests not under fakeroot for dbus tests (which don't seem to be able to
    run easily under dbus-test-runner)

  [ Charles Kerr ]
  * Tests hanging (LP: #1074065)
  * User-switching item is blank if there's no display name (LP:
  * unnecessary dependencies on polkit and packagekit (LP: #1085100)

  [ Robert Ancell ]
  * Replace dbus-glib with GDBus (LP: #1084756)

  [ Automatic PS uploader ]
  * Automatic snapshot from revision 382
 -- Automatic PS uploader <email address hidden> Fri, 25 Jan 2013 02:01:17 +0000

Changed in indicator-session (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers