unity-window-decorator crashed with SIGSEGV in g_datalist_id_set_data_full()

Bug #807487 reported by Goblin on 2011-07-08
496
This bug affects 89 people
Affects Status Importance Assigned to Milestone
Unity
Fix Released
Critical
Sam Spilsbury
compiz (Ubuntu)
Medium
Sam Spilsbury
Oneiric
Medium
Sam Spilsbury
unity (Ubuntu)
Undecided
Unassigned
Oneiric
Undecided
Unassigned

Bug Description

Description: Ubuntu oneiric (development branch) Release: 11.10
unity: 4.2.0-0ubuntu1

How to reproduce:
1. Open VLC
2. "File" -> "Open disc"

What happens?
The window decorator crashes.

Workarround:
1. Install qt4-qtconfig package
2. Open it and choose any other theme than "Desktop Settings"

Testcase

Enter the python interactive console

>> window = gtk.Window ()
>> window.resize (100, 100)
>> window.show_all ()
>> window.resize (4098, 4098)

The window will now be maximized, unmaximize it

>> window.resize (4098, 4098)

The window should disappear rather than breaking your desktop

ProblemType: Crash
DistroRelease: Ubuntu 11.10
Package: compiz-gnome 1:0.9.4+bzr20110606-0ubuntu6
ProcVersionSignature: Ubuntu 3.0-3.4-generic-pae 3.0.0-rc5
Uname: Linux 3.0-3-generic-pae i686
NonfreeKernelModules: nvidia
Architecture: i386
Date: Fri Jul 8 22:06:05 2011
ExecutablePath: /usr/bin/unity-window-decorator
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Alpha i386 (20110705.1)
ProcCmdline: /usr/bin/unity-window-decorator
ProcEnviron:
 LANG=ru_RU.UTF-8
 SHELL=/bin/bash
SegvAnalysis:
 Segfault happened at: 0xb6d90b74 <g_datalist_id_set_data_full+356>: mov 0x0(%ebp),%ecx
 PC (0xb6d90b74) ok
 source "0x0(%ebp)" (0xaaaaaaa8) not located in a known VMA region (needed readable region)!
 destination "%ecx" ok
SegvReason: reading unknown VMA
Signal: 11
SourcePackage: compiz
StacktraceTop:
 g_datalist_id_set_data_full () from /lib/i386-linux-gnu/libglib-2.0.so.0
 ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
 ?? () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0
 ?? () from /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0
 g_object_unref () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
Title: unity-window-decorator crashed with SIGSEGV in g_datalist_id_set_data_full()
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare

Goblin (runagate) wrote :

StacktraceTop:
 g_data_set_internal (datalist=0x960a8e8, key_id=52, data=0x0, destroy_func=0) at /build/buildd/glib2.0-2.29.10/./glib/gdataset.c:377
 g_datalist_id_set_data_full (datalist=0x960a8e8, key_id=52, data=0x0, destroy_func=0) at /build/buildd/glib2.0-2.29.10/./glib/gdataset.c:673
 g_object_real_dispose (object=0x960a8e0) at /build/buildd/glib2.0-2.29.10/./gobject/gobject.c:895
 gtk_object_dispose (gobject=0x960a8e0) at /build/buildd/gtk+2.0-2.24.5/gtk/gtkobject.c:426
 gtk_widget_dispose (object=0x960a8e0) at /build/buildd/gtk+2.0-2.24.5/gtk/gtkwidget.c:8775

Changed in compiz (Ubuntu):
importance: Undecided → Medium
tags: removed: need-i386-retrace
tags: added: compiz-0.9
visibility: private → public
Changed in compiz (Ubuntu):
status: New → Confirmed
crtm (carlosrtm) wrote :

The same here. I run vlc and Then unity is crashed.

Copying test case and workarround from duplicate.

description: updated
muyiwa (muyiwa-iyowu) wrote :

This bug affects me too. Gonna try workaround

Vassili Platonov (vassilip) wrote :

Yes, the same here. I lost my window decorator

Andrew Tonks (a-p-tonks) wrote :

I am forwarded as my bug was marked as duplicated of this, though I am not sure:

I can no longer print on my network printer, and compiz crashes a little after I try.

CUPS, compiz both buggy now?

Iain (iain-7) wrote :

Not just VLC, had this with Firefox as well, so is more widespread than VLC

Jason (themacster) wrote :

Every time I open Calibre, I get the same issue.

Jared (jared-vanvolkenburg) wrote :

This occurred in VLC after I selected Tools -> Customize Interface .. from the right click menu.

the crash occured when I was in the unity laptop battery "manager" (the one you get from the icon on the top of the screen)

tags: added: bugpattern-needed
Guy Stone (stoneguy3) wrote :

coexists with 858416. System is ASUS eeePC900 with ext mon

Abner Rizzi (bacteria666) wrote :

open VLC -> open media from clipboard and crash occurs

Ader (rasmusrim) wrote :

The crash occured when I was in the terminal reporting another bug :) I don't know how to reproduce.

Changed in compiz (Ubuntu Oneiric):
importance: Medium → High
assignee: nobody → Canonical Desktop Experience Team (canonical-dx-team)
milestone: none → ubuntu-11.10
tags: added: rls-mgr-o-tracking

reproduced with VLC

Didier Roche (didrocks) on 2011-09-27
Changed in unity:
status: New → Confirmed
importance: Undecided → High
milestone: none → 4.20.0

Yesterday (2011-09-26) evening update from main repositories (including a full update of unity/ubuntu-desktop) => VLC no longer crashes or resize out of sense with the playlist => VLC can start in unity, the only side issue now is I cannot move the window. VLC is stuck to the top bar. You can have full screen or resize the back of VLC window. No way to move the window.

tags: removed: bugpattern-needed
tags: added: bugpattern-written
cmyrland (carl-rahien) wrote :

Crashes when trying to open network stream as well.

Neil J. Patel (njpatel) on 2011-09-29
Changed in unity:
importance: High → Critical
Changed in compiz (Ubuntu Oneiric):
importance: High → Critical
importance: Critical → High
Neil J. Patel (njpatel) on 2011-09-29
Changed in unity:
assignee: nobody → Sam Spilsbury (smspillaz)
Didier Roche (didrocks) wrote :

This issue comes with the Qt crash that is going under fix on bug #805303. Sam will had some compiz protection as an SRU against this case to not make the desktop crash.

Changed in unity:
importance: Critical → Medium
Changed in compiz (Ubuntu Oneiric):
importance: High → Medium
Changed in unity:
milestone: 4.20.0 → 4.22.0
Didier Roche (didrocks) on 2011-09-30
Changed in unity:
importance: Medium → Critical
Changed in unity:
status: Confirmed → Fix Committed
Changed in compiz (Ubuntu Oneiric):
status: Confirmed → Fix Committed
Changed in unity:
milestone: 4.22.0 → 4.24.0
David Barth (dbarth) on 2011-10-07
Changed in compiz (Ubuntu Oneiric):
assignee: Canonical Desktop Experience Team (canonical-dx-team) → Sam Spilsbury (smspillaz)
Didier Roche (didrocks) on 2011-10-14
Changed in unity:
status: Fix Committed → Fix Released
Changed in compiz (Ubuntu Oneiric):
status: Fix Committed → Fix Released
Changed in compiz (Ubuntu):
status: Fix Committed → Fix Released
Sam Spilsbury (smspillaz) wrote :
Download full text (5.0 KiB)

=== added file 'debian/patches/rev_2821_fix_807487.patch'
--- debian/patches/rev_2821_fix_807487.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/rev_2821_fix_807487.patch 2011-10-17 07:02:55 +0000
@@ -0,0 +1,91 @@
+bzr+ssh://bazaar.launchpad.net/~compiz-team/compiz-core/oneiric/
+=== modified file 'plugins/opengl/include/opengl/opengl.h'
+Index: compiz-0.9.6+bzr20110929/plugins/opengl/include/opengl/opengl.h
+===================================================================
+--- compiz-0.9.6+bzr20110929.orig/plugins/opengl/include/opengl/opengl.h 2011-10-17 14:35:33.867415820 +0800
++++ compiz-0.9.6+bzr20110929/plugins/opengl/include/opengl/opengl.h 2011-10-17 14:35:56.703529052 +0800
+@@ -398,6 +398,7 @@
+ WRAPABLE_HND (4, GLScreenInterface, void, glDisableOutputClipping);
+
+ friend class GLTexture;
++ friend class GLWindow;
+ friend class SpewScreen;
+ friend class SpewWindow;
+
+Index: compiz-0.9.6+bzr20110929/plugins/opengl/src/privates.h
+===================================================================
+--- compiz-0.9.6+bzr20110929.orig/plugins/opengl/src/privates.h 2011-10-17 14:35:33.879415881 +0800
++++ compiz-0.9.6+bzr20110929/plugins/opengl/src/privates.h 2011-10-17 14:35:56.703529052 +0800
+@@ -121,6 +121,9 @@
+ bool hasCompositing;
+
+ GLIcon defaultIcon;
++
++ Window saveWindow; // hack for broken applications, see:
++ // https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/807487
+ };
+
+ class PrivateGLWindow :
+Index: compiz-0.9.6+bzr20110929/plugins/opengl/src/screen.cpp
+===================================================================
+--- compiz-0.9.6+bzr20110929.orig/plugins/opengl/src/screen.cpp 2011-10-17 14:35:33.895415963 +0800
++++ compiz-0.9.6+bzr20110929/plugins/opengl/src/screen.cpp 2011-10-17 14:35:56.703529052 +0800
+@@ -99,6 +99,7 @@
+ GLfloat diffuseLight[] = { 0.9f, 0.9f, 0.9f, 0.9f };
+ GLfloat light0Position[] = { -0.5f, 0.5f, -9.0f, 1.0f };
+ XWindowAttributes attr;
++ XSetWindowAttributes attrib;
+ const char *glRenderer;
+ CompOption::Vector o (0);
+
+@@ -114,6 +115,10 @@
+ setenv ("LIBGL_ALWAYS_INDIRECT", "1", True);
+ }
+
++ attrib.override_redirect = 1;
++
++ priv->saveWindow = XCreateWindow (dpy, screen->root (), -100, -100, 1, 1, 0, CopyFromParent, InputOutput, CopyFromParent, CWOverrideRedirect, &attrib);
++
+ if (!XGetWindowAttributes (dpy, s->root (), &attr))
+ {
+ screen->handleCompizEvent ("opengl", "fatal_fallback", o);
+Index: compiz-0.9.6+bzr20110929/plugins/opengl/src/window.cpp
+===================================================================
+--- compiz-0.9.6+bzr20110929.orig/plugins/opengl/src/window.cpp 2011-10-17 14:35:33.907416017 +0800
++++ compiz-0.9.6+bzr20110929/plugins/opengl/src/window.cpp 2011-10-17 14:35:56.703529052 +0800
+@@ -105,6 +105,21 @@
+ compLogMessage ("opengl", CompLogLevelInfo,
+ "Couldn't bind redirected window 0x%x to "
+ "texture\n", (int) priv->window->id ());
++
++ if (priv->cWindow->size ().width () > GL::maxTextureSize ||
++ priv->cWindow->size ().height () > GL::maxTextureSize)
++ {
++ compLogMessage ("opengl", CompLogLevelWarn,
++ "Bug in wi...

Read more...

Changed in unity:
milestone: 4.24.0 → 4.26.0
description: updated
Didier Roche (didrocks) on 2011-10-20
Changed in compiz (Ubuntu Oneiric):
status: Fix Released → Fix Committed
Changed in compiz (Ubuntu):
status: Fix Released → Fix Committed

Hello Goblin, or anyone else affected,

Accepted compiz into oneiric-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

tags: added: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package compiz - 1:0.9.6+bzr20110929-0ubuntu7

---------------
compiz (1:0.9.6+bzr20110929-0ubuntu7) precise; urgency=low

  * Upload to precise

compiz (1:0.9.6+bzr20110929-0ubuntu6) oneiric-proposed; urgency=low

  * debian/patches/rev_2821_fix_807487.patch:
    - unity-window-decorator crashed with SIGSEGV in
      g_datalist_id_set_data_full() (LP: #807487)
  * debian/patches/rev_2847_bug_796594.patch:
    - Window behaviour - pressing the 'restore' window indicator on a
      semi-maximised window should return it to the restored state
      (LP: #796594)
  * debian/patches/rev_2878_bug_865696.patch:
    - Windows from other workspaces missing decorations in window spread
      (LP: #865696)
  * debian/patches/rev_2884_fix_874004.patch:
    - When a window is minimized on another workspace it doesn't appear
      in the spread (LP: #874004)
  * debian/patches/rev_2890_fix_879253.patch:
    - Makes the previous patch building and not crashing.
  * Add some upstream missing bits from previous fixes:
    - debian/patches/fix-864330.patch
    - debian/patches/fix-864478.patch
  * debian/patches/fix-886978.patch:
    - compiz crashes with SIGSEGV in PrivateWindow::configure (LP: #886978)
 -- Didier Roche <email address hidden> Thu, 10 Nov 2011 09:11:57 +0100

Changed in compiz (Ubuntu):
status: Fix Committed → Fix Released
Miklos Juhasz (mjuhasz) wrote :

The proposed version resolves this bug for me.
I opened VLC, chose "Open Disc" and the window decorator did not crash. I also tried to open a network stream, that worked as well.

Omer Akram (om26er) on 2011-11-10
tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package compiz - 1:0.9.6+bzr20110929-0ubuntu6

---------------
compiz (1:0.9.6+bzr20110929-0ubuntu6) oneiric-proposed; urgency=low

  * debian/patches/rev_2821_fix_807487.patch:
    - unity-window-decorator crashed with SIGSEGV in
      g_datalist_id_set_data_full() (LP: #807487)
  * debian/patches/rev_2847_bug_796594.patch:
    - Window behaviour - pressing the 'restore' window indicator on a
      semi-maximised window should return it to the restored state
      (LP: #796594)
  * debian/patches/rev_2878_bug_865696.patch:
    - Windows from other workspaces missing decorations in window spread
      (LP: #865696)
  * debian/patches/rev_2884_fix_874004.patch:
    - When a window is minimized on another workspace it doesn't appear
      in the spread (LP: #874004)
  * debian/patches/rev_2890_fix_879253.patch:
    - Makes the previous patch building and not crashing.
  * Add some upstream missing bits from previous fixes:
    - debian/patches/fix-864330.patch
    - debian/patches/fix-864478.patch
  * debian/patches/fix-886978.patch:
    - compiz crashes with SIGSEGV in PrivateWindow::configure (LP: #886978)
 -- Didier Roche <email address hidden> Thu, 20 Oct 2011 14:23:52 +0200

Changed in compiz (Ubuntu Oneiric):
status: Fix Committed → Fix Released
Rolf Leggewie (r0lf) wrote :

oneiric has seen the end of its life and is no longer receiving any updates. Marking the oneiric task for this ticket as "Won't Fix".

Changed in unity (Ubuntu Oneiric):
status: New → Won't Fix
Will Cooke (willcooke) on 2015-09-16
Changed in unity (Ubuntu):
status: New → Fix Released
To post a comment you must log in.