compiz crashed with SIGSEGV in unity::UnityScreen::compizDamageNux() from unity::UnityScreen::preparePaint()

Bug #1097681 reported by Alexander Langanke
30
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Unity
Fix Released
High
Unassigned
unity (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Was watching a fullscreen video on youtube.

ProblemType: Crash
DistroRelease: Ubuntu 13.04
Package: unity 6.12.0daily12.12.05-0ubuntu1
ProcVersionSignature: Ubuntu 3.7.0-7.15-generic 3.7.0
Uname: Linux 3.7.0-7-generic x86_64
NonfreeKernelModules: nvidia
ApportVersion: 2.8-0ubuntu1
Architecture: amd64
Date: Wed Jan 9 11:49:41 2013
Disassembly: => 0xffffffffffffffe8: Cannot access memory at address 0xffffffffffffffe8
ExecutablePath: /usr/bin/compiz
InstallationDate: Installed on 2012-06-12 (210 days ago)
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425)
MarkForUpload: True
ProcCmdline: compiz
SegvAnalysis:
 Segfault happened at: 0xffffffffffffffe8: Cannot access memory at address 0xffffffffffffffe8
 PC (0xffffffffffffffe8) not located in a known VMA region (needed executable region)!
SegvReason: executing unknown VMA
Signal: 11
SourcePackage: unity
StacktraceTop:
 ?? ()
 unity::UnityScreen::compizDamageNux(CompRegion const&) () from /usr/lib/compiz/libunityshell.so
 unity::UnityScreen::preparePaint(int) () from /usr/lib/compiz/libunityshell.so
 CompositeScreen::preparePaint(int) () from /usr/lib/compiz/libcomposite.so
 CompositeScreen::handlePaintTimeout() () from /usr/lib/compiz/libcomposite.so
Title: compiz crashed with SIGSEGV in unity::UnityScreen::compizDamageNux()
UpgradeStatus: Upgraded to raring on 2012-12-21 (18 days ago)
UserGroups: adm cdrom dip lpadmin plugdev sambashare sudo
XsessionErrors:
 gnome-session[2064]: WARNING: Failed to start app: Unable to start application: Failed to execute child process "owncloud" (No such file or directory)
 gnome-session[2064]: WARNING: Could not launch application 'evolution-alarm-notify.desktop': Unable to start application: Failed to execute child process "/usr/lib/evolution/3.6/evolution-alarm-notify" (No such file or directory)
 gnome-session[2064]: WARNING: Application 'compiz.desktop' killed by signal 11
 gnome-session[2064]: WARNING: App 'compiz.desktop' respawning too quickly
 gnome-session[2064]: CRITICAL: We failed, but the fail whale is dead. Sorry....

Revision history for this message
Alexander Langanke (alexlanganke) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 ?? ()
 unity::UnityScreen::compizDamageNux (this=this@entry=0xe37e60, damage=...) at /build/buildd/unity-6.12.0daily12.12.05/plugins/unityshell/src/unityshell.cpp:1435
 unity::UnityScreen::preparePaint (this=0xe37e60, ms=16) at /build/buildd/unity-6.12.0daily12.12.05/plugins/unityshell/src/unityshell.cpp:1318
 CompositeScreen::preparePaint (this=0xa78ea0, msSinceLastPaint=<optimized out>) at /build/buildd/compiz-0.9.9~daily12.12.05/plugins/composite/src/screen.cpp:897
 CompositeScreen::handlePaintTimeout (this=0xa78ea0) at /build/buildd/compiz-0.9.9~daily12.12.05/plugins/composite/src/screen.cpp:802

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
tags: removed: need-amd64-retrace
information type: Private → Public
summary: compiz crashed with SIGSEGV in unity::UnityScreen::compizDamageNux()
+ from unity::UnityScreen::preparePaint()
Changed in unity:
importance: Undecided → High
Changed in unity (Ubuntu):
importance: Medium → High
Changed in unity:
milestone: none → 7.0.0
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Reviewing Unity r2956 at unityshell.cpp:1435 I find:

  QuicklistManager* qm = QuicklistManager::Default();
  if (qm)
  {
    QuicklistView* view = qm->Current();

    if (view)
    {
      nux::Geometry const& geo = view->GetAbsoluteGeometry(); <============
      CompRegion quicklist_region(geo.x, geo.y, geo.width, geo.height);

      if (damage.intersects(quicklist_region))
        view->QueueDraw();
    }
  }

Looks like view is a stale pointer (and not null either).

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
Revision history for this message
Stephen M. Webb (bregma) wrote :

The code in at the root of this problem was modified to fix another bug in such a way that this bug will not occur, and the code already merged. Marking as Fix Released appropriately.

If the problem reoccurs, please open a new bug.

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

The code in at the root of this problem was modified to fix another bug in such a way that this bug will not occur, and the code already released into Ubuntu. Marking as Fix Released appropriately.

If the problem reoccurs, please open a new bug.

Changed in unity (Ubuntu):
status: Confirmed → 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
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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