compiz crashed with SIGABRT in __GI___assert_fail() from operator-> (this=<optimized out>) at /usr/include/boost/smart_ptr/shared_ptr.hpp:424 from operator-> from unity::MT::GrabHandle::requestMovement() from unity::MT::X11GrabHandleImpl::buttonPress()

Bug #1046201 reported by Mark Shuttleworth
46
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Unity
Fix Released
High
Brandon Schaefer
5.0
Triaged
High
Unassigned
6.0
Fix Released
High
Brandon Schaefer
unity (Ubuntu)
Fix Released
Medium
Unassigned
Quantal
Fix Released
Medium
Unassigned

Bug Description

[Impact]

A crasher regarding mt handling reference counting.

[Test Case]

May be hard to reproduce, but try using multi-touch gesture.

[Regression potential]

Test that no new crashers arrive because of the fix. The fix does have automated test included.

Original description:

Difficult to tell, compiz just nuked itself.

ProblemType: Crash
DistroRelease: Ubuntu 12.10
Package: unity 6.4.0-0ubuntu4
ProcVersionSignature: Ubuntu 3.5.0-13.14-generic 3.5.3
Uname: Linux 3.5.0-13-generic i686
ApportVersion: 2.5.1-0ubuntu4
Architecture: i386
CrashCounter: 1
Date: Wed Sep 5 08:33:51 2012
ExecutablePath: /usr/bin/compiz
InstallationMedia: Ubuntu 10.04 "Lucid Lynx" - Alpha i386 (20100201)
ProcCmdline: compiz
ProcEnviron:
 PATH=(custom, no user)
 LANG=en_GB.UTF-8
 SHELL=/bin/zsh
Signal: 6
SourcePackage: unity
StacktraceTop:
 raise () from /lib/i386-linux-gnu/libc.so.6
 abort () from /lib/i386-linux-gnu/libc.so.6
 ?? () from /lib/i386-linux-gnu/libc.so.6
 __assert_fail () from /lib/i386-linux-gnu/libc.so.6
 unity::MT::GrabHandle::requestMovement(int, int, unsigned int) const () from /usr/lib/compiz/libunitymtgrabhandles.so
Title: compiz crashed with SIGABRT in raise()
UpgradeStatus: Upgraded to quantal on 2012-01-03 (245 days ago)
UserGroups: adm admin cdrom dialout libvirtd lpadmin plugdev sambashare wireshark

Related branches

Revision history for this message
Mark Shuttleworth (sabdfl) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 __assert_fail_base (fmt=0xb74e66d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0xb3987753 "px != 0", file=0xb3987600 "/usr/include/boost/smart_ptr/shared_ptr.hpp", line=424, function=0xb39877c0 "T* boost::shared_ptr<T>::operator->() const [with T = unity::MT::GrabHandleGroup]") at assert.c:94
 __GI___assert_fail (assertion=0xb3987753 "px != 0", file=0xb3987600 "/usr/include/boost/smart_ptr/shared_ptr.hpp", line=424, function=0xb39877c0 "T* boost::shared_ptr<T>::operator->() const [with T = unity::MT::GrabHandleGroup]") at assert.c:103
 operator-> (this=<optimized out>) at /usr/include/boost/smart_ptr/shared_ptr.hpp:424
 operator-> (this=<optimized out>) at /build/buildd/unity-6.4.0/plugins/unity-mt-grab-handles/src/unity-mt-grab-handle.cpp:125
 unity::MT::GrabHandle::requestMovement (this=0xacf2c78, x=779, y=447, button=1) at /build/buildd/unity-6.4.0/plugins/unity-mt-grab-handles/src/unity-mt-grab-handle.cpp:39

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : StacktraceSource.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in unity (Ubuntu):
importance: Undecided → Medium
summary: - compiz crashed with SIGABRT in raise()
+ compiz crashed with SIGABRT in __assert_fail_base()
tags: removed: need-i386-retrace
summary: - compiz crashed with SIGABRT in __assert_fail_base()
+ compiz crashed with SIGABRT in __GI___assert_fail() from operator->
+ (this=<optimized out>) at
+ /usr/include/boost/smart_ptr/shared_ptr.hpp:424 from operator-> from
+ unity::MT::GrabHandle::requestMovement() from
+ unity::MT::X11GrabHandleImpl::buttonPress()
visibility: private → public
Changed in unity:
milestone: none → 6.6
Revision history for this message
Brandon Schaefer (brandontschaefer) wrote :

Hmm odd, it seems as the weak_ptr mOwner is returning an empty shared_ptr when calling mOwner.lock().....

#7 unity::MT::GrabHandle::requestMovement (this=0xacf2c78, x=779, y=447, button=1) at /build/buildd/unity-6.4.0/plugins/unity-mt-grab-handles/src/unity-mt-grab-handle.cpp:39
        ghg = {px = 0x0, pn = {pi_ = 0x0}}

I wonder if a check should be there to skip over using the ptr if the .lock() returns an empty shared_ptr

Though it would be best to figure out why the weak_ptr expired....

I haven't been able to reproduce this though...Ill see if I can reproduce it...

Omer Akram (om26er)
Changed in unity:
importance: Undecided → Medium
Changed in unity:
milestone: 6.6 → 7.0
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in unity (Ubuntu):
status: New → Confirmed
Changed in unity:
status: New → Confirmed
Changed in unity:
importance: Medium → High
Revision history for this message
Neil J. Patel (njpatel) wrote :

Hi brandon, I've assigned this to you for now, if you hit a road block I think sam would be good to continue the debugging.

Changed in unity:
assignee: nobody → Brandon Schaefer (brandontschaefer)
Changed in unity:
status: Confirmed → In Progress
Changed in unity:
status: In Progress → Fix Committed
Changed in unity (Ubuntu):
status: Confirmed → In Progress
description: updated
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Mark, or anyone else affected,

Accepted unity into quantal-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/unity/6.10.0-0ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in unity (Ubuntu Quantal):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

I've not seen the crash with my Zenbook's multi-touch touchpad during the week of usage of 6.10, although as noted it was quite hard to reproduce anyway.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Chris Halse Rogers (raof) wrote :

Hello Mark, or anyone else affected,

Accepted unity into quantal-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/unity/6.10.0-0ubuntu2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: removed: verification-done
tags: added: verification-needed
tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity - 6.10.0-0ubuntu2

---------------
unity (6.10.0-0ubuntu2) quantal-proposed; urgency=low

  * Cherry-picked from upstream:
    - [SRU Regression] Launcher icon corruption while rearranging
      (LP: #1071813)

unity (6.10.0-0ubuntu1) quantal-proposed; urgency=low

  [ Timo Jyrinki ]
  * New upstream release.
    - Gap between the dash gradient and the panel one (LP: #1062375)
    - [regression] Dash closes if the onscreen keyboard is outside of
      Dash' geometry (LP: #1058705)
    - Dash - Category expander arrow is in expanded mode no matter if
      category is actually expanded (LP: #1053047)
    - Unity panel does not show the kate menus in the correct order
      (LP: #1062283)
    - compiz crashed with SIGSEGV in g_type_check_instance_is_a() from
      g_object_unref() from _g_file_attribute_value_clear() from ... from
      query_info_async_cb() [libgvfsdbus.so] (LP: #1061510)
    - dash's music album previews: can't drag the scrollbar (LP: #1056995)
    - Small chunks of the panel shadow appear individually (and very dark)
      (LP: #1057528)
    - compiz crashed with SIGSEGV on Unity "Unmount" (LP: #1055812)
    - [regression] Dash - 'More suggestions' icons in App Lens are too
      large (LP: #1052513)
    - BamfLauncherIcon: ensure the icon and name values when the running
      state changes (LP: #772986)
    - Changes the swapping order of the detail mode. Now the currently
      active window gets moved to the end, instead of getting swapped
      with the last used window (LP: #1061229)
    - Fixes GetRegion tex coord maths (LP: #1058391)
    - Fixed fade-in behavior of Unity's showdesktop function (LP: #1063249)
    - Added <feature>showdesktop</feature> to unityshell.xml.in, because
      the feature showdesktop is provided by unityshell. (LP: #1006429)
      (LP: #1006434) (LP: #1063171)
    - Make HudLauncherIcon::ubus_manager_ "un-static" (LP: #1048274)
    - Fix reference counting problem which leads to memory leaks and a
      crash in MT grab handles (LP: #1046201)
    - Ensure categories with non-personal results can show up before empty
      categories with personal results (LP: #1067327)
    - fix a backup error (LP: #1066646)

  [ Łukasz 'sil2100' Zemczak ]
  * Cherry-picked from upstream:
    - Reverted the switch from boost to std which was part of the fix for
      LP: #1046201. The crash is still fixed without this change, so it was
      actually unneeded
 -- Lukasz 'sil2100' Zemczak <email address hidden> Tue, 30 Oct 2012 18:00:00 +0100

Changed in unity (Ubuntu Quantal):
status: Fix Committed → Fix Released
Revision history for this message
Clint Byrum (clint-fewbar) wrote : Update Released

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity - 6.10.0-0ubuntu3

---------------
unity (6.10.0-0ubuntu3) raring; urgency=low

  * Upload to raring

unity (6.10.0-0ubuntu2) quantal-proposed; urgency=low

  * Cherry-picked from upstream:
    - [SRU Regression] Launcher icon corruption while rearranging
      (LP: #1071813)

unity (6.10.0-0ubuntu1) quantal-proposed; urgency=low

  [ Timo Jyrinki ]
  * New upstream release.
    - Gap between the dash gradient and the panel one (LP: #1062375)
    - [regression] Dash closes if the onscreen keyboard is outside of
      Dash' geometry (LP: #1058705)
    - Dash - Category expander arrow is in expanded mode no matter if
      category is actually expanded (LP: #1053047)
    - Unity panel does not show the kate menus in the correct order
      (LP: #1062283)
    - compiz crashed with SIGSEGV in g_type_check_instance_is_a() from
      g_object_unref() from _g_file_attribute_value_clear() from ... from
      query_info_async_cb() [libgvfsdbus.so] (LP: #1061510)
    - dash's music album previews: can't drag the scrollbar (LP: #1056995)
    - Small chunks of the panel shadow appear individually (and very dark)
      (LP: #1057528)
    - compiz crashed with SIGSEGV on Unity "Unmount" (LP: #1055812)
    - [regression] Dash - 'More suggestions' icons in App Lens are too
      large (LP: #1052513)
    - BamfLauncherIcon: ensure the icon and name values when the running
      state changes (LP: #772986)
    - Changes the swapping order of the detail mode. Now the currently
      active window gets moved to the end, instead of getting swapped
      with the last used window (LP: #1061229)
    - Fixes GetRegion tex coord maths (LP: #1058391)
    - Fixed fade-in behavior of Unity's showdesktop function (LP: #1063249)
    - Added <feature>showdesktop</feature> to unityshell.xml.in, because
      the feature showdesktop is provided by unityshell. (LP: #1006429)
      (LP: #1006434) (LP: #1063171)
    - Make HudLauncherIcon::ubus_manager_ "un-static" (LP: #1048274)
    - Fix reference counting problem which leads to memory leaks and a
      crash in MT grab handles (LP: #1046201)
    - Ensure categories with non-personal results can show up before empty
      categories with personal results (LP: #1067327)
    - fix a backup error (LP: #1066646)

  [ Łukasz 'sil2100' Zemczak ]
  * Cherry-picked from upstream:
    - Reverted the switch from boost to std which was part of the fix for
      LP: #1046201. The crash is still fixed without this change, so it was
      actually unneeded
 -- Didier Roche <email address hidden> Fri, 09 Nov 2012 08:06:47 +0100

Changed in unity (Ubuntu):
status: In Progress → Fix Released
Stephen M. Webb (bregma)
Changed in unity:
status: Fix Committed → Fix Released
Changed in unity:
status: Fix Released → Fix Committed
Revision history for this message
Stephen M. Webb (bregma) wrote :

Fix Released in Unity Unity 7.0.0 "R series".

Changed in unity:
status: Fix Committed → Fix Released
Revision history for this message
AraiBob (rhhyatt) wrote :

How do I get this fix? I get a CompIZ abort several times in a day. I can't think of anything I am doing consistently that will cause the abort. If this is an important piece of software, then why does my pc seem to work while it is going through the abort report process?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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