unity-panel-service crashed with SIGSEGV in gdk_window_new()

Bug #867649 reported by Eugene San
70
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Indicator Display Objects
Fix Released
Medium
Ted Gould
ido (Ubuntu)
Fix Released
Medium
Ken VanDine

Bug Description

Crash occurs when trying to interact with volume control indicator in unity-2d inside NX/VNC session.
unity-2d-panel also crashes at the same moment.

ProblemType: Crash
DistroRelease: Ubuntu 11.10
Package: unity-services 4.20.0-0ubuntu2
ProcVersionSignature: Ubuntu 3.0.0-12.19-generic-pae 3.0.4
Uname: Linux 3.0.0-12-generic-pae i686
.tmp.unity.support.test.1:

ApportVersion: 1.23-0ubuntu2
Architecture: i386
CompizPlugins: [core,bailer,detection,composite,opengl,compiztoolbox,decor,place,vpswitch,session,resize,snap,grid,mousepoll,move,imgpng,gnomecompat,regex,wall,animation,expo,unitymtgrabhandles,workarounds,fade,ezoom,scale,unityshell]
CompositorRunning: None
CrashCounter: 1
Date: Tue Oct 4 18:25:29 2011
DistUpgraded: Fresh install
DistroCodename: oneiric
DistroVariant: ubuntu
DkmsStatus: virtualbox, 4.1.2, 3.0.0-12-generic-pae, i686: installed
EcryptfsInUse: Yes
ExecutablePath: /usr/lib/unity/unity-panel-service
GraphicsCard:
 Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03) (prog-if 00 [VGA controller])
   Subsystem: Lenovo ThinkPad T60/R60 series [17aa:201a]
   Subsystem: Lenovo ThinkPad T60/R60 series [17aa:201a]
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Beta i386 (20110901)
MachineType: LENOVO 19524TG
PccardctlIdent:
 Socket 0:
   no product info available
PccardctlStatus:
 Socket 0:
   no card
ProcCmdline: /usr/lib/unity/unity-panel-service
ProcEnviron:
 SHELL=/bin/bash
 LANG=en_US.UTF-8
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.0.0-12-generic-pae root=UUID=f1955d63-e57d-4423-973a-840df6086b42 ro crashkernel=384M-2G:64M,2G-:128M quiet splash pcie_aspm=force elevator=noop vt.handoff=7
SegvAnalysis:
 Segfault happened at: 0xb7225ee6 <gdk_window_new+870>: mov 0x10(%eax),%eax
 PC (0xb7225ee6) ok
 source "0x10(%eax)" (0x00000010) not located in a known VMA region (needed readable region)!
 destination "%eax" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: unity
StacktraceTop:
 gdk_window_new () from /usr/lib/libgdk-3.so.0
 ?? () from /usr/lib/libido3-0.1.so.0
 g_cclosure_marshal_VOID__VOID () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
 ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
 g_closure_invoke () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
Title: unity-panel-service crashed with SIGSEGV in gdk_window_new()
UnitySupportTest: Error: command ['/usr/lib/nux/unity_support_test', '-p', '-f'] failed with exit code 1: Error: no composite extension
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm admin cdrom dialout disk lpadmin netdev plugdev sambashare vboxusers
dmi.bios.date: 04/01/2010
dmi.bios.vendor: LENOVO
dmi.bios.version: 79ETE6WW (2.26 )
dmi.board.name: 19524TG
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr79ETE6WW(2.26):bd04/01/2010:svnLENOVO:pn19524TG:pvrThinkPadT60:rvnLENOVO:rn19524TG:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 19524TG
dmi.product.version: ThinkPad T60
dmi.sys.vendor: LENOVO
version.compiz: compiz 1:0.9.6+bzr20110929-0ubuntu2
version.libdrm2: libdrm2 2.4.26-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 7.11-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 7.11-0ubuntu3
version.xserver-xorg: xserver-xorg 1:7.6+7ubuntu7
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.6.0-1ubuntu13
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20110811.g93fc084-0ubuntu1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.15.901-1ubuntu2
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20110411+8378443-1
xinput:
 "pointer" id=0 [XPointer]
 "keyboard" id=1 [XKeyboard]

Revision history for this message
Eugene San (eugenesan) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 gdk_window_new (parent=0x8b29c98, attributes=0xbfeb05e8, attributes_mask=44) at /build/buildd/gtk+3.0-3.2.0/./gdk/gdkwindow.c:1359
 ido_offscreen_proxy_realize (widget=0x8a0e420) at /build/buildd/ido-0.3.0/./src/idooffscreenproxy.c:218
 g_cclosure_marshal_VOID__VOID (closure=0x87b4ad8, return_value=0x0, n_param_values=1, param_values=0x899d820, invocation_hint=0xbfeb07b0, marshal_data=0xb5363f90) at /build/buildd/glib2.0-2.30.0/./gobject/gmarshal.c:85
 g_type_class_meta_marshal (closure=0x87b4ad8, return_value=0x0, n_param_values=1, param_values=0x899d820, invocation_hint=0xbfeb07b0, marshal_data=0x64) at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c:885
 g_closure_invoke (closure=0x87b4ad8, return_value=0x0, n_param_values=1, param_values=0x899d820, invocation_hint=0xbfeb07b0) at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c:774

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 unity (Ubuntu):
importance: Undecided → Medium
tags: removed: need-i386-retrace
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
visibility: private → public
affects: unity (Ubuntu) → ido (Ubuntu)
Revision history for this message
Shelby Cain (alyandon) wrote :

Subsequent testing on my part revealed that it is the volume control applet that is causing the crash. I can't seem to trigger it via the standard Session, Clock, Chat/Email and NetworkManager applets.

Revision history for this message
covox (covox) wrote :

In method ido_offscreen_proxy_realize(), a call is made to gdk_screen_get_rgba_visual() to get a GdkVisual handle, which is then passed as part of a GdkWindowAttr structure to gdk_window_new().

What's not taken into account is that gdk_screen_get_rgba_visual() will return NULL if RGBA isn't supported by the destination window manager (e.g. if someone turned the Composite extension off). In this case, as the field is always marked as valid for use (GDK_WA_VISUAL), gdk_window_new will fall over.

Attached is a patch to fall back on gdk_screen_get_system_visual() if RGBA isn't available. With this, unity-panel-service no longer crashes after interacting with the Sound indicator if the Composite extension is switched off.

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "ido-visual-fix.patch" of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-sponsors please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

tags: added: patch
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

ted, can you look at this patch, please?

Changed in ido:
status: New → Confirmed
assignee: nobody → Ted Gould (ted)
Revision history for this message
Brian Rogers (brian-rogers) wrote :

The patch is working for me. I put it in my PPA:
https://launchpad.net/~brian-rogers/+archive/ppa

Revision history for this message
Sebastien Bacher (seb128) wrote :

Ken, can you get somebody from dx to review this patch? It seems that direct Ccing on assignement doesn't work great :-(

Changed in ido (Ubuntu):
assignee: nobody → Ken VanDine (ken-vandine)
Revision history for this message
Ken VanDine (ken-vandine) wrote :

Since upstream still hasn't reviewed this, I have prepared a distro patch to be uploaded after the alpha2 freeze is over.

lp:~ken-vandine/ubuntu/precise/ido/lp_867649

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

This bug was fixed in the package ido - 0.3.1-0ubuntu2

---------------
ido (0.3.1-0ubuntu2) precise; urgency=low

  * src/idooffscreenproxy.c
    - Don't crash if RGBA isn't supported by the window manager, fall back to
      gdk_screen_get_system_visual(). Patch thanks to covox (LP: #867649)
 -- Ken VanDine <email address hidden> Thu, 02 Feb 2012 13:56:02 -0500

Changed in ido (Ubuntu):
status: Confirmed → Fix Released
Charles Kerr (charlesk)
Changed in ido:
status: Confirmed → Fix Released
importance: Undecided → Medium
milestone: none → 0.3.2
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.