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 723220 - Icon loading leads to application crashes with 3.10.7
Icon loading leads to application crashes with 3.10.7
Status: RESOLVED INVALID
Product: gtk+
Classification: Platform
Component: .General
3.10.x
Other Linux
: Normal critical
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2014-01-29 10:09 UTC by Jürg Billeter
Modified: 2014-01-29 21:06 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Jürg Billeter 2014-01-29 10:09:55 UTC
I see at least totem, gitg, and pan crashing with the following messages after upgrading from GTK+ 3.10.6 to 3.10.7:

(totem:26838): GLib-GIO-CRITICAL **: g_loadable_icon_load: assertion 'G_IS_LOADABLE_ICON (icon)' failed

(totem:26838): Gtk-WARNING **: Error loading theme icon 'gtk-edit' for stock: Failed to load icon

(totem:26838): Gtk-CRITICAL **: render_fallback_image: assertion 'pixbuf != NULL' failed

(totem:26838): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed

(totem:26838): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(totem:26838): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'GDK_IS_PIXBUF (pixbuf)' failed

(totem:26838): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
**
Gdk:ERROR:gdkcairo.c:193:gdk_cairo_surface_paint_pixbuf: assertion failed: (cairo_image_surface_get_format (surface) == CAIRO_FORMAT_RGB24 || cairo_image_surface_get_format (surface) == CAIRO_FORMAT_ARGB32)
Aborted (core dumped)
Comment 1 Jürg Billeter 2014-01-29 10:12:07 UTC
Backtrace for first critical:

  • #0 g_logv
    at gmessages.c line 989
  • #1 g_log
    at gmessages.c line 1025
  • #2 g_return_if_fail_warning
  • #3 g_loadable_icon_load
    at gloadableicon.c line 85
  • #4 icon_info_ensure_scale_and_pixbuf
    at gtkicontheme.c line 3776
  • #5 gtk_icon_info_load_icon
    at gtkicontheme.c line 3881
  • #6 gtk_icon_theme_load_icon_for_scale
  • #7 render_icon_name_pixbuf
    at deprecated/gtkiconfactory.c line 1381
  • #8 find_and_render_icon_source
    at deprecated/gtkiconfactory.c line 1464
  • #9 gtk_icon_set_render_icon_pixbuf_for_scale
    at deprecated/gtkiconfactory.c line 1547
  • #10 gtk_icon_set_render_icon_surface
    at deprecated/gtkiconfactory.c line 1621
  • #11 ensure_surface_for_icon_set
    at gtkiconhelper.c line 609
  • #12 ensure_surface_for_icon_set
    at gtkiconhelper.c line 602
  • #13 _gtk_icon_helper_ensure_surface
    at gtkiconhelper.c line 751
  • #14 _gtk_icon_helper_get_size
    at gtkiconhelper.c line 783
  • #15 gtk_image_get_preferred_size
    at gtkimage.c line 1525
  • #16 gtk_image_get_preferred_width
    at gtkimage.c line 1703
  • #17 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #18 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 390
  • #19 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #20 gtk_box_get_size
    at gtkbox.c line 1112
  • #21 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #22 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 390
  • #23 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #24 gtk_alignment_get_preferred_size
    at gtkalignment.c line 636
  • #25 gtk_alignment_get_preferred_width
    at gtkalignment.c line 698
  • #26 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #27 gtk_widget_compute_size_for_orientation
  • #28 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #29 _gtk_widget_get_preferred_size_for_size
    at gtksizerequest.c line 869
  • #30 gtk_button_get_size
    at gtkbutton.c line 2240
  • #31 gtk_button_get_preferred_width
    at gtkbutton.c line 2267
  • #32 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #33 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 405
  • #34 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #35 gtk_box_get_size
    at gtkbox.c line 1112
  • #36 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #37 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 390
  • #38 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #39 gtk_box_get_size
    at gtkbox.c line 1112
  • #40 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #41 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 390
  • #42 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #43 gtk_box_get_size
    at gtkbox.c line 1112
  • #44 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #45 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 390
  • #46 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #47 gtk_box_get_size
    at gtkbox.c line 1112
  • #48 gtk_widget_query_size_for_orientation
  • #49 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 390
  • #50 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #51 gtk_box_get_size
    at gtkbox.c line 1112
  • #52 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #53 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 390
  • #54 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #55 gtk_box_get_size
    at gtkbox.c line 1112
  • #56 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #57 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 390
  • #58 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #59 gtk_window_get_preferred_width
    at gtkwindow.c line 7844
  • #60 gtk_widget_query_size_for_orientation
    at gtksizerequest.c line 180
  • #61 gtk_widget_compute_size_for_orientation
    at gtksizerequest.c line 390
  • #62 gtk_widget_get_preferred_width
    at gtksizerequest.c line 490
  • #63 _gtk_widget_get_preferred_size_and_baseline
    at gtksizerequest.c line 683
  • #64 gtk_widget_get_preferred_size
    at gtksizerequest.c line 748
  • #65 gtk_window_compute_hints
    at gtkwindow.c line 9189
  • #66 gtk_window_compute_configure_request
    at gtkwindow.c line 8544
  • #67 gtk_window_show
    at gtkwindow.c line 5410
  • #68 g_closure_invoke
    at gclosure.c line 777
  • #69 signal_emit_unlocked_R
    at gsignal.c line 3516
  • #70 g_signal_emit_valist
    at gsignal.c line 3330
  • #71 g_signal_emit
    at gsignal.c line 3386
  • #72 gtk_widget_show
    at gtkwidget.c line 4336
  • #73 gtk_dialog_run
    at gtkdialog.c line 1046
  • #74 totem_add_files
    from /lib/libtotem.so.0
  • #75 totem_action_open
    from /lib/libtotem.so.0
  • #76 g_closure_invoke
  • #77 signal_emit_unlocked_R
    at gsignal.c line 3586
  • #78 g_signal_emit_valist
    at gsignal.c line 3330
  • #79 g_signal_emit
    at gsignal.c line 3386
  • #80 g_simple_action_activate
    at gsimpleaction.c line 206
  • #81 g_application_exported_actions_activate_action_full
    at gapplication.c line 320
  • #82 org_gtk_Actions_method_call
    at gactiongroupexporter.c line 419
  • #83 call_in_idle_cb
    at gdbusconnection.c line 4868
  • #84 g_main_dispatch
    at gmain.c line 3066
  • #85 g_main_context_dispatch
    at gmain.c line 3642
  • #86 g_main_context_iterate
    at gmain.c line 3713
  • #87 g_main_context_iteration
    at gmain.c line 3774
  • #88 g_application_run
    at gapplication.c line 1635
  • #89 main

Comment 2 Matthias Clasen 2014-01-29 20:01:33 UTC
hmm, I don't see any relevant changes between 3.10.6 and 3.10.7. Are you sure nothing else changed on the system ?
Comment 3 Jürg Billeter 2014-01-29 21:06:18 UTC
This was an issue in the build environment. /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache was not generated before the GTK+ build which meant that gtk-update-icon-cache failed to generate gtkbuiltincache.h.

Unfortunately, make still claimed that the build was successful, so I didn't immediately notice this. Sorry for the noise.