After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 567253 - assertion from _cairo_status_is_error leads to crash
assertion from _cairo_status_is_error leads to crash
Status: RESOLVED NOTGNOME
Product: gtk-engines
Classification: Deprecated
Component: clearlooks
2.16.x
Other All
: Normal critical
: ---
Assigned To: gtk-engines maintainers
gtk-engines maintainers
: 567727 571337 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-01-10 14:26 UTC by Antoine Jacoutot
Modified: 2009-02-12 11:47 UTC
See Also:
GNOME target: ---
GNOME version: 2.23/2.24



Description Antoine Jacoutot 2009-01-10 14:26:07 UTC
Steps to reproduce:
1. make sure your using the clearlook engine in your GNOME theme
2. start epiphany
3. try to save an image on your hard drive


Stack trace:
(gdb) run
Starting program: /usr/local/bin/epiphany 
[New process 15942, thread 0x878e0000]
[New process 15942, thread 0x7ccdfc00]
[New process 15942, thread 0x7f5bd000]
[New process 15942, thread 0x7e4b3800]
[New process 15942, thread 0x8a770400]
[New process 15942, thread 0x85f4e000]
[New process 15942]
[New process 15942, thread 0x8171f800]
assertion "_cairo_status_is_error (status)" failed: file "cairo.c", line 87, function "_cairo_error"

Program received signal SIGABRT, Aborted.
[Switching to process 15942, thread 0x7f252c00]
0x0738c5b5 in kill () from /usr/lib/libc.so.50.0
(gdb) bt
  • #0 kill
    from /usr/lib/libc.so.50.0
  • #1 abort
    at /usr/src/lib/libc/stdlib/abort.c line 68
  • #2 __assert2
  • #3 _cairo_error
    at cairo.c line 90
  • #4 _cairo_set_error
    at cairo.c line 118
  • #5 *INT_cairo_clip_preserve
    at cairo.c line 2450
  • #6 cairo_clip
    at cairo.c line 2413
  • #7 clearlooks_gummy_draw_progressbar_fill
    at src/clearlooks_draw_gummy.c line 403
  • #8 clearlooks_style_draw_box
    at src/clearlooks_style.c line 818
  • #9 IA__gtk_paint_box
    at gtkstyle.c line 5903
  • #10 gtk_cell_renderer_progress_render
    at gtkcellrendererprogress.c line 601
  • #11 IA__gtk_cell_renderer_render
    at gtkcellrenderer.c line 578
  • #12 gtk_tree_view_column_cell_process_action
    at gtktreeviewcolumn.c line 2802
  • #13 _gtk_tree_view_column_cell_render
    at gtktreeviewcolumn.c line 3135
  • #14 gtk_tree_view_bin_expose
    at gtktreeview.c line 4714
  • #15 gtk_tree_view_expose
    at gtktreeview.c line 4954
  • #16 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #17 g_type_class_meta_marshal
    at gclosure.c line 878
  • #18 IA__g_closure_invoke
    at gclosure.c line 767
  • #19 signal_emit_unlocked_R
    at gsignal.c line 3282
  • #20 IA__g_signal_emit_valist
    at gsignal.c line 2987
  • #21 IA__g_signal_emit
    at gsignal.c line 3034
  • #22 gtk_widget_event_internal
    at gtkwidget.c line 4745
  • #23 IA__gtk_main_do_event
    at gtkmain.c line 1553
  • #24 gdk_window_process_updates_internal
    at gdkwindow.c line 2598
  • #25 IA__gdk_window_process_all_updates
    at gdkwindow.c line 2664
  • #26 gtk_container_idle_sizer
    at gtkcontainer.c line 1309
  • #27 gdk_threads_dispatch
    at gdk.c line 473
  • #28 g_idle_dispatch
    at gmain.c line 4235
  • #29 g_main_dispatch
    at gmain.c line 2144
  • #30 IA__g_main_context_dispatch
    at gmain.c line 2697
  • #31 g_main_context_iterate
    at gmain.c line 2778
  • #32 IA__g_main_loop_run
    at gmain.c line 2986
  • #33 IA__gtk_main
    at gtkmain.c line 1200
  • #34 main
    at ephy-main.c line 749


Other information:
I don't know if this can be reproduced in some other way, but with epiphany, it is 100% reproductable.
It works just fine when using another gtk engine theme.
This is under OpenBSD.
Comment 1 Jasper Lievisse Adriaanse 2009-01-13 16:17:54 UTC
I can confirm this issue (on OpenBSD too).
I have the following relevant modules installed:
cairo: 1.8.4
gtk+2: 2.14.5
epiphany: 2.24.3
epiphany-extension: 2.24.3
glib2: 2.18.3
gtk2-engines: 2.16.1
Comment 2 Benjamin Berg 2009-01-13 16:52:00 UTC
Looks like something nasty is going on (though I don't think inside gtk-engines).

  • #3 _cairo_error
    at cairo.c line 90
  • #4 _cairo_set_error
    at cairo.c line 118

1. The status values should not be that high
2. The status values should not differe AFAICT

Are you running with progress bar animations enabled, or disable?
Comment 3 Reinout van Schouwen 2009-01-14 11:23:04 UTC
*** Bug 567727 has been marked as a duplicate of this bug. ***
Comment 4 Reinout van Schouwen 2009-01-14 11:23:40 UTC
The stack trace in bug 567727 probably has some more information.
Comment 5 Benjamin Berg 2009-01-14 15:13:02 UTC
OK, forget what I said about animation. This cannot be the problem, because it is a progress bar in a treeview.

Maybe someone more knowledable of Epiphany/Mozilla could take a look? A wild guess what may be happening:
 1. Epiphany shows the download window
 2. Download window starts drawing
 3. Download window/treeview/item is destroyed
 4. Drawing code crashes

If it was something like this, then the problem would be that epiphany is not doing proper locking in some place. I have no idea if this may be the cause ...
Comment 6 Reinout van Schouwen 2009-01-14 15:17:39 UTC
cc'ing epiphany-maint. Anyone have an idea about this?
Comment 7 Jasper Lievisse Adriaanse 2009-01-14 16:39:20 UTC
So following comment (In reply to comment #5)
> OK, forget what I said about animation. This cannot be the problem, because it
> is a progress bar in a treeview.
> 
> Maybe someone more knowledable of Epiphany/Mozilla could take a look? A wild
> guess what may be happening:
>  1. Epiphany shows the download window
>  2. Download window starts drawing
>  3. Download window/treeview/item is destroyed
>  4. Drawing code crashes
> 
> If it was something like this, then the problem would be that epiphany is not
> doing proper locking in some place. I have no idea if this may be the cause ...
> 

Epiphany crashes for me right after the "Downloads" dialog is created, just like you describe here.
Comment 8 Antoine Jacoutot 2009-01-26 10:22:40 UTC
> Epiphany crashes for me right after the "Downloads" dialog is created, just
> like you describe here.


The following patch for cairo, from NetBSD fixes the issue.

--- src/cairo-clip.c.orig	2008-11-26 16:44:13.000000000 +0100
+++ src/cairo-clip.c
@@ -423,7 +423,7 @@ _cairo_clip_intersect_mask (cairo_clip_t
     cairo_box_t extents;
     cairo_rectangle_int_t surface_rect, target_rect;
     cairo_surface_t *surface = NULL;
-    cairo_status_t status;
+    cairo_status_t status = CAIRO_STATUS_SUCCESS;
 
     if (clip->all_clipped)
 	return CAIRO_STATUS_SUCCESS;
Comment 9 Jasper Lievisse Adriaanse 2009-01-26 10:29:36 UTC
or rather, it's from upstream cairo in this commit;
http://cgit.freedesktop.org/cairo/commit/?id=efa9e1088cbf1b5331cc0bab3348520f3b91ae4b
Comment 10 Benjamin Berg 2009-01-26 14:46:19 UTC
Well, then this issue is solved :-)
Comment 11 palfrey 2009-02-12 11:47:50 UTC
*** Bug 571337 has been marked as a duplicate of this bug. ***