[apport] gnome-panel crashed with SIGSEGV in cairo_rectangle()

Bug #94201 reported by Jurriaan
38
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libcairo
Won't Fix
Medium
libwnck
Fix Released
Critical
libwnck (Ubuntu)
Fix Released
Medium
Ubuntu Desktop Bugs

Bug Description

Binary package hint: gnome-panel / libwnck

Steps to reproduce:
Turn compiz on
Drag a window from the window list(how do you call it, normally at the bottom of your screen) to another side of the cube(with a empty desktop).
You have successfully reproduced it :)

I don't know why, but i dragged a window(from the panel) to another side of the cube, and then gnome-panel crashes ;)

ProblemType: Crash
Architecture: i386
Date: Tue Mar 20 20:21:00 2007
DistroRelease: Ubuntu 7.04
ExecutablePath: /usr/bin/gnome-panel
Package: gnome-panel 2.18.0-0ubuntu2
PackageArchitecture: i386
ProcCmdline: gnome-panel --sm-client-id default1
ProcCwd: /home/jurp5
ProcEnviron:
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
 LANG=nl_NL.UTF-8
 SHELL=/bin/bash
Signal: 11
SourcePackage: gnome-panel
Stacktrace:
 #0 0xb78179c1 in cairo_rectangle () from /usr/lib/libcairo.so.2
 #1 0xb5d820ce in ?? () from /usr/lib/libwnck-1.so.18
 #2 0x00000000 in ?? ()
StacktraceTop:
 cairo_rectangle () from /usr/lib/libcairo.so.2
 ?? () from /usr/lib/libwnck-1.so.18
 ?? ()
ThreadStacktrace:
 .
 Thread 1 (process 5609):
 #0 0xb78179c1 in cairo_rectangle () from /usr/lib/libcairo.so.2
 #1 0xb5d820ce in ?? () from /usr/lib/libwnck-1.so.18
 #2 0x00000000 in ?? ()
Uname: Linux jurp5-desktop 2.6.20-11-generic #2 SMP Thu Mar 15 08:03:07 UTC 2007 i686 GNU/Linux
UserGroups: adm admin audio cdrom dialout dip floppy lpadmin netdev plugdev powerdev scanner video

Tags: compiz libwnck

Related branches

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

the corresponding line is " if (cr->status)", I've also opened a bug on libwnck which should not call cairo_rectangle with cr=0x0: http://bugzilla.gnome.org/show_bug.cgi?id=420713

Revision history for this message
In , Carl Worth (cworth) wrote :

(In reply to comment #0)
> #0 cairo_rectangle (cr=0x0, x=0, y=0, width=12, height=9) at

Passing a NULL pointer to cairo like that is illegal, and will cause a crash. So this is perhaps not a cairo bug at all.

Can you find anything out about where that NULL pointer is coming from?

-Carl

Revision history for this message
In , Freedesktop (freedesktop) wrote :

Yeah, passing NULL *should* crash. That's expected behavior.

As for the reason, the NULL drawable looks bad too:

#1 0xb5d820ce in draw_window (drawable=0x0, widget=0x82cc668, win=0x843f610,

Revision history for this message
Jurriaan (jurriaan) wrote : [apport] gnome-panel crashed with SIGSEGV in cairo_rectangle()"

Binary package hint: gnome-panel

Steps to reproduce:
Turn compiz on
Drag a window from the window list(how do you call it, normally at the bottom of your screen) to another side of the cube.
You have successfully reproduced it :)

I don't now why i drag a window(button) to another side of the cube, but gnome-panel crashes ;)

ProblemType: Crash
Architecture: i386
Date: Tue Mar 20 20:21:00 2007
DistroRelease: Ubuntu 7.04
ExecutablePath: /usr/bin/gnome-panel
Package: gnome-panel 2.18.0-0ubuntu2
PackageArchitecture: i386
ProcCmdline: gnome-panel --sm-client-id default1
ProcCwd: /home/jurp5
ProcEnviron:
 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
 LANG=nl_NL.UTF-8
 SHELL=/bin/bash
Signal: 11
SourcePackage: gnome-panel
Stacktrace:
 #0 0xb78179c1 in cairo_rectangle () from /usr/lib/libcairo.so.2
 #1 0xb5d820ce in ?? () from /usr/lib/libwnck-1.so.18
 #2 0x00000000 in ?? ()
StacktraceTop:
 cairo_rectangle () from /usr/lib/libcairo.so.2
 ?? () from /usr/lib/libwnck-1.so.18
 ?? ()
ThreadStacktrace:
 .
 Thread 1 (process 5609):
 #0 0xb78179c1 in cairo_rectangle () from /usr/lib/libcairo.so.2
 #1 0xb5d820ce in ?? () from /usr/lib/libwnck-1.so.18
 #2 0x00000000 in ?? ()
Uname: Linux jurp5-desktop 2.6.20-11-generic #2 SMP Thu Mar 15 08:03:07 UTC 2007 i686 GNU/Linux
UserGroups: adm admin audio cdrom dialout dip floppy lpadmin netdev plugdev powerdev scanner video

Revision history for this message
Jurriaan (jurriaan) wrote :
description: updated
Revision history for this message
Apport retracing service (apport) wrote : Symbolic stack trace

StacktraceTop:draw_window (drawable=0x0, widget=0x82cc668, win=0x843f610, winrect=0xbfc682dc, state=GTK_STATE_NORMAL, translucent=0) at pager.c:728
wnck_update_drag_icon (window=0x843f610, context=0x85031d0) at pager.c:1457
IA__g_cclosure_marshal_VOID__VOID (closure=0x842e178, return_value=0x0, n_param_values=1, param_values=0xbfc6853c, invocation_hint=0xbfc6844c,
IA__g_closure_invoke (closure=0x842e178, return_value=0x0, n_param_values=1, param_values=0xbfc6853c, invocation_hint=0xbfc6844c) at gclosure.c:490

Revision history for this message
Apport retracing service (apport) wrote : Symbolic threaded stack trace
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks for your bug report. This bug has been reported to the developers of the software. You can track it and make comments here: https://bugs.freedesktop.org/show_bug.cgi?id=10359

Changed in gnome-panel:
importance: Undecided → Medium
status: Unconfirmed → Confirmed
Revision history for this message
Sebastien Bacher (seb128) wrote :

I've also opened a libwnck bug: http://bugzilla.gnome.org/show_bug.cgi?id=420713

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

only a libwnck bug then, closing the cairo one

Changed in libcairo:
status: Unknown → Confirmed
Changed in libcairo:
status: Confirmed → Rejected
Revision history for this message
Wingman (mikywing) wrote :

I confirm this bug :)

Jurriaan (jurriaan)
description: updated
Changed in libcairo:
assignee: nobody → desktop-bugs
Jurriaan (jurriaan)
description: updated
Changed in libwnck:
status: Unknown → Unconfirmed
Revision history for this message
Sebastien Bacher (seb128) wrote :

upstream comment:

"The question is how do we have drawable == NULL in draw_window(). It means
gdk_pixmap_new() returns NULL in wnck_update_drag_icon().

This means one of these is failing:

  g_return_val_if_fail (drawable == NULL || GDK_IS_DRAWABLE (drawable), NULL);
  g_return_val_if_fail ((drawable != NULL) || (depth != -1), NULL);
  g_return_val_if_fail ((width != 0) && (height != 0), NULL);
  if (GDK_IS_WINDOW (drawable) && GDK_WINDOW_DESTROYED (drawable))

drawable in gdk_pixmap_new() is widget->window where widget is the pager. I
can't see how it could be NULL or an invalid drawable or destroyed while
someone is doing a drag and drop.
width and height are not null according to the stack trace.

So I'm lost.

I'd love to know if it's easily reproducable, and if it happens only with
compiz (could explain why I can't reproduce...)."

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

what do you mean by "other face of the cube"? where do you dnd the window?

Revision history for this message
Jurriaan (jurriaan) wrote : Re: [Bug 94201] Re: [apport] gnome-panel crashed with SIGSEGV in cairo_rectangle()

i mean just another side. i dragged an window from the taskbar to
another side of the cube

what do you mean with dnd?

Sebastien Bacher wrote:
> what do you mean by "other face of the cube"? where do you dnd the
> window?
>
>

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

how do you drag to an another side, the screen only displays on face, do you have 2 monitor? Or do you dnd (drag and drop) it on the workspace switcher? Or do you have the cube rotating when you reach a border or something?

Revision history for this message
Jurriaan (jurriaan) wrote :

Rotating when i reach a border and the drop it on another side of the cube

Sebastien Bacher wrote:
> how do you drag to an another side, the screen only displays on face, do
> you have 2 monitor? Or do you dnd (drag and drop) it on the workspace
> switcher? Or do you have the cube rotating when you reach a border or
> something?
>
>

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

libwnck (2.19.4-0ubuntu1) gutsy; urgency=low

  * New upstream version:
    Features
    - Show workspace names in the window selector
    - Add support for _NET_FRAME_EXTENTS.
      wnck_window_get_client_window_geometry() is a new API and
      wnck_window_get_geometry() now returns the geometry including the window
      manager decorations
    - Add wnck_screen_get_number() API
    - Add wnck_screen_get_window_manager_name() API and window-manager-changed
      signal
    Deprecations
    - Deprecate wnck_gtk_window_set_dock_type()
    - Deprecate wnck_pager_set_screen()
    - Deprecate wnck_tasklist_set_screen()
    - Deprecate the screen argument of wnck_pager_new() and of
      wnck_tasklist_new()
    Fixes
    - Code cleanups
    - Make wnck_screen_net_wm_supports() work on all screens
    - Do not forget about the "Make below" action for the default possible
      actions
    - Rework selection ownership for the desktop layout: do not steal it and
      release it
    - Do not change the layout shown in the pager if the the pager couldn't
      update the layout hint
    - Make the pager use the real layout of the screen when it cannot set the
      layout
    - Use g_timeout_add_seconds() when possible
    - Migrate to new GtkTooltip API
    - Add some safety guards to the public API
    - Improve position of the drag icon when dragging a window
    - Make wnck_pid_read_resource_usage() work for more X clients
    - Fix a crash happening sometimes when a tasklist is destroyed
    - Be more solid against invalid values for _NET_NUMBER_OF_DESKTOPS
    - Do not skip taskbar for transient windows if the window they're transient
      for don't exist
    - Fix a crash when dragging a window to somewhere like another
      workspace/viewport (LP: #94201)
    - Make WnckSelector and WnckTasklist correctly work from bindings
    - Fix crash on multihead setups introduced in 2.19.3
    - Fix potential invalidity of the previously active window when there are
      multiple screens
    Misc
    - Totally rework API documentation
    - New wnckprop utility, not installed by default
    - Require glib 2.13.0
    - Require GTK+ 2.11.3
  * debian/control.in:
    - updated glib and gtk requirements
  * debian/patches/01_workspaces_tooltips.patch:
    - use the new GTK tooltip API (LP: #63483, #90878)

 -- Sebastien Bacher <email address hidden> Mon, 18 Jun 2007 22:45:20 +0200

Changed in libwnck:
status: Confirmed → Fix Released
Changed in libwnck:
status: Unconfirmed → Fix Released
Changed in libcairo:
importance: Unknown → Medium
status: Invalid → Won't Fix
Changed in libwnck:
importance: Unknown → Critical
Changed in libcairo:
importance: Medium → Unknown
Changed in libcairo:
importance: Unknown → Medium
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.