Skip to content

Thumbnails sometimes do not load correctly in the settings icon view

Issue Description

The icon view is only partially loaded, while these warnings appear repeatedly in console output (see below for the corresponding backtrace):

Gtk-CRITICAL **: 12:14:40.878: gtk_tree_model_get_iter_first: assertion 'GTK_IS_TREE_MODEL (tree_model)' failed

Steps to Reproduce Issue

It's not easy. It's a race condition apparently related to the fact that the icon view model is set asynchronously in cb_enumerator_file_ready. I've tried deleting the thumbnails in ~/.cache/thumbnails to force xfdesktop-settings to recreate them without managing to reliably reproduce the problem.

Expected Behavior

Icon view is fully loaded without any warning in console output.

Additional Information

Backtrace corresponding to the above critical warning:

Core was generated by `/opt/bin/xfdesktop-settings.orig'.
Program terminated with signal SIGTRAP, Trace/breakpoint trap.
#0  _g_log_abort (breakpoint=<optimized out>) at ../glib/glib/gmessages.c:431
431	    G_BREAKPOINT ();
[Current thread is 1 (Thread 0x7158a4102e80 (LWP 19077))]
(gdb) bt
#0  _g_log_abort (breakpoint=<optimized out>) at ../glib/glib/gmessages.c:431
#1  g_logv (log_domain=0x7158a6225014 "Gtk", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7ffc05f920f0) at ../glib/glib/gmessages.c:1287
#2  0x00007158a595e614 in g_log (log_domain=log_domain@entry=0x7158a6225014 "Gtk", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7158a5a2735e "%s: assertion '%s' failed")
    at ../glib/glib/gmessages.c:1329
#3  0x00007158a595f8ee in g_return_if_fail_warning
    (log_domain=log_domain@entry=0x7158a6225014 "Gtk", pretty_function=pretty_function@entry=0x7158a629c830 <__func__.29.lto_priv.8> "gtk_tree_model_get_iter_first", expression=expression@entry=0x7158a624c1a0 "GTK_IS_TREE_MODEL (tree_model)") at ../glib/glib/gmessages.c:3074
#4  0x00007158a6104445 in gtk_tree_model_get_iter_first (tree_model=tree_model@entry=0x0, iter=iter@entry=0x7ffc05f92210) at ../gtk/gtk/gtktreemodel.c:1372
#5  0x0000636f5a97ab51 in cb_thumbnail_ready
    (thumbnailer=<optimized out>, src_file=0x636f6d3abbf0 "/home/user/Images/dog1.png", thumb_file=0x636f6d3b4330 "/home/user/.cache/thumbnails/large/9a6f97145d0008fdaf8ae202b1c5c1f7.png", background_settings=0x636f6d05c720) at ../settings/xfdesktop-background-settings.c:330
#6  0x00007158a5a64892 in g_closure_invoke (closure=0x636f6d0bee30, return_value=0x0, n_param_values=3, param_values=0x7ffc05f92460, invocation_hint=0x7ffc05f923b0) at ../glib/gobject/gclosure.c:833
#7  0x00007158a5a95625 in signal_emit_unlocked_R.isra.0
    (node=node@entry=0x7ffc05f92580, detail=detail@entry=0, instance=instance@entry=0x636f6d090550, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc05f92460)
    at ../glib/gobject/gsignal.c:3902
#8  0x00007158a5a85d29 in signal_emit_valist_unlocked (instance=instance@entry=0x636f6d090550, signal_id=signal_id@entry=540, detail=detail@entry=0, var_args=var_args@entry=0x7ffc05f926f0)
    at ../glib/gobject/gsignal.c:3534
#9  0x00007158a5a85fb2 in g_signal_emit_valist (instance=0x636f6d090550, signal_id=540, detail=0, var_args=var_args@entry=0x7ffc05f926f0) at ../glib/gobject/gsignal.c:3277
#10 0x00007158a5a86074 in g_signal_emit (instance=instance@entry=0x636f6d090550, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3597
#11 0x0000636f5a98094a in xfdesktop_thumbnailer_thumbnail_ready_dbus (proxy=<optimized out>, handle=<optimized out>, uri=0x715880010750, data=0x636f6d090550) at ../common/xfdesktop-thumbnailer.c:526
#12 0x00007158a5a64892 in g_closure_invoke (closure=0x636f6d092d90, return_value=0x0, n_param_values=3, param_values=0x636f6d00da90, invocation_hint=0x7ffc05f92960) at ../glib/gobject/gclosure.c:833
#13 0x00007158a5a95625 in signal_emit_unlocked_R.isra.0
    (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x636f6d08fc20, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x636f6d00da90)
    at ../glib/gobject/gsignal.c:3902
#14 0x00007158a5a82a8c in signal_emitv_unlocked (instance_and_params=0x7ffc05f92af0, signal_id=<optimized out>, detail=0, return_value=0x636f6d00da90) at ../glib/gobject/gsignal.c:3226
#15 g_signal_emitv (instance_and_params=instance_and_params@entry=0x636f6d00da90, signal_id=<optimized out>, detail=detail@entry=0, return_value=return_value@entry=0x0) at ../glib/gobject/gsignal.c:3126
#16 0x0000636f5a982f54 in tumbler_thumbnailer1_proxy_g_signal (proxy=<optimized out>, sender_name=<optimized out>, signal_name=<optimized out>, parameters=<optimized out>) at common/tumbler.c:2111
#17 0x00007158a5a64892 in g_closure_invoke (closure=0x636f6cadede0, return_value=0x0, n_param_values=4, param_values=0x7ffc05f92dd0, invocation_hint=0x7ffc05f92d20) at ../glib/gobject/gclosure.c:833
#18 0x00007158a5a95c22 in signal_emit_unlocked_R.isra.0
    (node=node@entry=0x7ffc05f92f10, detail=detail@entry=0, instance=instance@entry=0x636f6d08fc20, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc05f92dd0)
    at ../glib/gobject/gsignal.c:3942
#19 0x00007158a5a85d29 in signal_emit_valist_unlocked (instance=instance@entry=0x636f6d08fc20, signal_id=signal_id@entry=39, detail=detail@entry=0, var_args=var_args@entry=0x7ffc05f93080)
    at ../glib/gobject/gsignal.c:3534
#20 0x00007158a5a85fb2 in g_signal_emit_valist (instance=0x636f6d08fc20, signal_id=39, detail=0, var_args=var_args@entry=0x7ffc05f93080) at ../glib/gobject/gsignal.c:3277
#21 0x00007158a5a86074 in g_signal_emit (instance=instance@entry=0x636f6d08fc20, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3597
#22 0x00007158a5bccc6c in on_signal_received
    (connection=<optimized out>, sender_name=0x715894019760 ":1.107", object_path=<optimized out>, interface_name=<optimized out>, signal_name=0x715894018940 "Ready", parameters=0x715894017bf0, user_data=0x636f6d092af0) at ../glib/gio/gdbusproxy.c:874
#23 0x00007158a5bb5eb9 in emit_signal_instance_in_idle_cb (data=0x715894019950) at ../glib/gio/gdbusconnection.c:4190
#24 0x00007158a5958ba9 in g_main_dispatch (context=0x636f6cac22a0) at ../glib/glib/gmain.c:3361
#25 0x00007158a59bc757 in g_main_context_dispatch_unlocked (context=0x636f6cac22a0) at ../glib/glib/gmain.c:4212
#26 g_main_context_iterate_unlocked.isra.0 (context=0x636f6cac22a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4277
#27 0x00007158a59598d7 in g_main_loop_run (loop=0x636f6d217dd0) at ../glib/glib/gmain.c:4479
#28 0x00007158a5fe4d7f in gtk_main () at ../gtk/gtk/gtkmain.c:1329
#29 0x0000636f5a979af2 in main (argc=<optimized out>, argv=<optimized out>) at ../settings/main.c:213

Environment & Versions

  • OS distribution and version: arch linux
  • Overall Xfce version: 4.20
  • xfdesktop version (git hash if not a release): 4.20.0-dev-699e21b0
  • Windowing system (X11/Wayland): X11
  • Compositor and version (if Wayland):
  • GTK Theme: Adwaita
  • Icon Theme: elementary-xfce
  • UI Scale Factor: 1