compiz crashed with SIGSEGV in nux::NTextureData::GetSurface()

Bug #921130 reported by Chris Johnston
140
This bug affects 56 people
Affects Status Importance Assigned to Milestone
Nux
Fix Released
Undecided
Unassigned
Unity
Fix Released
Critical
Marco Trevisan (Treviño)
nux (Ubuntu)
Fix Released
Undecided
Unassigned
Precise
Invalid
Critical
Jay Taoko
unity (Ubuntu)
Fix Released
Critical
Marco Trevisan (Treviño)
Precise
Fix Released
Critical
Marco Trevisan (Treviño)

Bug Description

Happened after first upgrade to 12.04

ProblemType: Crash
DistroRelease: Ubuntu 12.04
Package: libnux-2.0-0 2.0.0-0ubuntu2
ProcVersionSignature: Ubuntu 3.2.0-10.17-generic 3.2.1
Uname: Linux 3.2.0-10-generic x86_64
NonfreeKernelModules: nvidia
ApportVersion: 1.91-0ubuntu1
Architecture: amd64
Date: Tue Jan 24 12:25:11 2012
ExecutablePath: /usr/bin/compiz
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
ProcCmdline: compiz
ProcEnviron:
 PATH=(custom, no user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SegvAnalysis:
 Segfault happened at: 0x7f1685a081e7 <_ZNK3nux12NTextureData10GetSurfaceEi+7>: mov (%rax,%rsi,8),%rax
 PC (0x7f1685a081e7) ok
 source "(%rax,%rsi,8)" (0x00000000) not located in a known VMA region (needed readable region)!
 destination "%rax" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: nux
StacktraceTop:
 nux::NTextureData::GetSurface(int) const () from /usr/lib/libnux-image-2.0.so.0
 nux::CreateTexture2DFromPixbuf(_GdkPixbuf*, bool) () from /usr/lib/libnux-graphics-2.0.so.0
 WindowButton::WindowButton(unity::panel::WindowButtonType) () from /usr/lib/compiz/libunityshell.so
 unity::WindowButtons::WindowButtons() () from /usr/lib/compiz/libunityshell.so
 unity::PanelMenuView::PanelMenuView(int) () from /usr/lib/compiz/libunityshell.so
Title: compiz crashed with SIGSEGV in nux::NTextureData::GetSurface()
UpgradeStatus: Upgraded to precise on 2012-01-24 (0 days ago)
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare

Related branches

Revision history for this message
Chris Johnston (cjohnston) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 nux::NTextureData::GetSurface (this=0x21fa200, MipLevel=<optimized out>) at ./ImageSurface.h:239
 nux::CreateTexture2DFromPixbuf (pixbuf=0x0, premultiply=true) at ./GLTextureResourceManager.cpp:80
 GetDashWindowButton (state=unity::panel::NORMAL, type=unity::panel::CLOSE, this=0x21f95b0) at /build/buildd/unity-5.0.0/plugins/unityshell/src/WindowButtons.cpp:286
 LoadImages (this=0x21f95b0) at /build/buildd/unity-5.0.0/plugins/unityshell/src/WindowButtons.cpp:162
 WindowButton::WindowButton (this=0x21f95b0, type=<optimized out>) at /build/buildd/unity-5.0.0/plugins/unityshell/src/WindowButtons.cpp:63

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in nux (Ubuntu):
importance: Undecided → Medium
tags: removed: need-amd64-retrace
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in nux (Ubuntu):
status: New → Confirmed
Revision history for this message
Chris Johnston (cjohnston) wrote :

This has now happened to me on two different machines.

Changed in unity:
status: New → Confirmed
Changed in nux:
status: New → Confirmed
Changed in nux (Ubuntu):
importance: Medium → Critical
visibility: private → public
Changed in nux (Ubuntu):
assignee: nobody → Canonical Desktop Experience Team (canonical-dx-team)
tags: added: rls-mgr-p-tracking
David Barth (dbarth)
Changed in nux (Ubuntu Precise):
milestone: none → ubuntu-12.04-beta-1
Changed in unity:
milestone: none → 5.6.0
assignee: nobody → Jay Taoko (jaytaoko)
importance: Undecided → Critical
Omer Akram (om26er)
Changed in nux (Ubuntu Precise):
assignee: Canonical Desktop Experience Team (canonical-dx-team) → Jay Taoko (jaytaoko)
Revision history for this message
Tim Penhey (thumper) wrote :

Andy, this bug directly relates to the following lines in WindowButton.cpp:

    glib::Object<GdkPixbuf> pixbuf(gdk_pixbuf_new_from_file(filename.Value(), &error));
    // not handling broken texture or missing files
    return nux::CreateTexture2DFromPixbuf(pixbuf, true);

Now obviously the pixbuf is null in this case.

Can we have a sensible default instead of seg-faulting?

Changed in unity:
assignee: Jay Taoko (jaytaoko) → Andrea Azzarone (andyrock)
milestone: 5.6.0 → 5.4.0
Changed in unity:
assignee: Andrea Azzarone (andyrock) → Marco Trevisan (Treviño) (3v1n0)
status: Confirmed → In Progress
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

Fixing the Unity part, by the way Nux shouldn't crash when CreateTexture2DFromPixbuf has the pixbuf parameter set to NULL

Changed in unity (Ubuntu Precise):
status: New → In Progress
assignee: nobody → Marco Trevisan (Treviño) (3v1n0)
Changed in unity (Ubuntu Precise):
status: In Progress → Fix Committed
Changed in unity:
status: In Progress → Fix Committed
Changed in nux (Ubuntu Precise):
status: Confirmed → Invalid
Changed in nux:
status: Confirmed → Invalid
David Barth (dbarth)
Changed in unity (Ubuntu Precise):
importance: Undecided → Critical
Changed in nux:
status: Invalid → Fix Released
Changed in unity:
status: Fix Committed → Fix Released
Changed in unity (Ubuntu Precise):
status: Fix Committed → Fix Released
Robert Hooker (sarvatt)
Changed in nux (Ubuntu Precise):
milestone: ubuntu-12.04-beta-1 → none
Changed in nux (Ubuntu):
status: Invalid → Fix Released
assignee: Jay Taoko (jaytaoko) → nobody
importance: Critical → Undecided
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.