Random UI freezes
For a few days now I've been having random UI freezes (I use !392 (closed) rebased on upstream/master up to date). During the last one I thought of attaching gdb to get a backtrace: it seems to be a deadlock during a thumbnail request.
#0 0x00007fb6fa90ed6d in syscall () at /usr/lib/libc.so.6
#1 0x00007fb6fac7c0eb in g_mutex_lock_slowpath (mutex=0x55a21fc00f58) at ../glib/glib/gthread-posix.c:1465
#2 0x00007fb6fac7c127 in g_mutex_lock (mutex=mutex@entry=0x55a21fc00f58) at ../glib/glib/gthread-posix.c:1494
#3 0x000055a21d72c27b in thunar_thumbnailer_queue_files
(thumbnailer=0x55a21fc00f20, lazy_checks=lazy_checks@entry=0, files=files@entry=0x7ffdbbed6970 = {...}, request=0x55a21faa11a0, size=size@entry=THUNAR_THUMBNAIL_SIZE_DEFAULT) at thunar-thumbnailer.c:1144
#4 0x000055a21d72c35d in thunar_thumbnailer_queue_file (thumbnailer=<optimized out>, file=file@entry=0x55a21fd4bdd0, request=<optimized out>, size=size@entry=THUNAR_THUMBNAIL_SIZE_DEFAULT)
at thunar-thumbnailer.c:1125
#5 0x000055a21d726e53 in thunar_standard_view_row_changed (model=<optimized out>, path=<optimized out>, standard_view=0x55a21faa1510, iter=<optimized out>) at thunar-standard-view.c:3625
#6 thunar_standard_view_row_changed (model=<optimized out>, path=<optimized out>, iter=<optimized out>, standard_view=0x55a21faa1510) at thunar-standard-view.c:3595
#7 0x00007fb6fad28626 in g_closure_invoke (closure=0x55a21f8d5d80, return_value=0x0, n_param_values=3, param_values=0x7ffdbbed6b90, invocation_hint=0x7ffdbbed6ae0) at ../glib/gobject/gclosure.c:832
#8 0x00007fb6fad56a36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffdbbed6c90, detail=detail@entry=0, instance=instance@entry=0x55a21fd760e0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdbbed6b90)
at ../glib/gobject/gsignal.c:3980
#9 0x00007fb6fad47a42 in signal_emit_valist_unlocked (instance=instance@entry=0x55a21fd760e0, signal_id=signal_id@entry=279, detail=detail@entry=0, var_args=var_args@entry=0x7ffdbbed6df0)
at ../glib/gobject/gsignal.c:3612
#10 0x00007fb6fad47c77 in g_signal_emit_valist (instance=0x55a21fd760e0, signal_id=279, detail=0, var_args=var_args@entry=0x7ffdbbed6df0) at ../glib/gobject/gsignal.c:3355
#11 0x00007fb6fad47d34 in g_signal_emit (instance=instance@entry=0x55a21fd760e0, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#12 0x00007fb6fb503327 in gtk_tree_model_row_changed (tree_model=tree_model@entry=0x55a21fd760e0, path=path@entry=0x55a21febd9c0, iter=iter@entry=0x7ffdbbed6ee0) at ../gtk/gtk/gtktreemodel.c:1847
#13 0x000055a21d6ffd4c in thunar_list_model_file_changed (file_monitor=<optimized out>, file=<optimized out>, store=0x55a21fd760e0) at thunar-list-model.c:1476
#14 0x00007fb6fad28626 in g_closure_invoke (closure=0x55a21f9182a0, return_value=0x0, n_param_values=2, param_values=0x7ffdbbed7120, invocation_hint=0x7ffdbbed7070) at ../glib/gobject/gclosure.c:832
#15 0x00007fb6fad56a36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffdbbed7210, detail=detail@entry=0, instance=instance@entry=0x55a21f86a430, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdbbed7120)
at ../glib/gobject/gsignal.c:3980
#16 0x00007fb6fad47a42 in signal_emit_valist_unlocked (instance=instance@entry=0x55a21f86a430, signal_id=signal_id@entry=452, detail=detail@entry=0, var_args=var_args@entry=0x7ffdbbed7370)
at ../glib/gobject/gsignal.c:3612
#17 0x00007fb6fad47c77 in g_signal_emit_valist (instance=0x55a21f86a430, signal_id=452, detail=0, var_args=var_args@entry=0x7ffdbbed7370) at ../glib/gobject/gsignal.c:3355
#18 0x00007fb6fad47d34 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3675
#19 0x00007fb6fad28626 in g_closure_invoke (closure=0x55a21f931820, return_value=0x0, n_param_values=1, param_values=0x7ffdbbed7620, invocation_hint=0x7ffdbbed7570) at ../glib/gobject/gclosure.c:832
#20 0x00007fb6fad56b7a in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffdbbed76f0, detail=detail@entry=0, instance=instance@entry=0x55a21fd4bdd0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdbbed7620)
at ../glib/gobject/gsignal.c:3813
#21 0x00007fb6fad47a42 in signal_emit_valist_unlocked (instance=instance@entry=0x55a21fd4bdd0, signal_id=signal_id@entry=265, detail=detail@entry=0, var_args=var_args@entry=0x7ffdbbed7850)
at ../glib/gobject/gsignal.c:3612
#22 0x00007fb6fad47c77 in g_signal_emit_valist (instance=0x55a21fd4bdd0, signal_id=265, detail=0, var_args=var_args@entry=0x7ffdbbed7850) at ../glib/gobject/gsignal.c:3355
#23 0x00007fb6fad47d34 in g_signal_emit (instance=instance@entry=0x55a21fd4bdd0, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#24 0x00007fb6fbb5100d in thunarx_file_info_changed (file_info=file_info@entry=0x55a21fd4bdd0) at thunarx-file-info.c:376
#25 0x000055a21d6edc4d in thunar_file_load_content_type (file=file@entry=0x55a21fd4bdd0) at thunar-file.c:2613
#26 0x000055a21d6edd8d in thunar_file_get_content_type (file=file@entry=0x55a21fd4bdd0) at thunar-file.c:2469
#27 0x000055a21d72b4ec in thunar_thumbnailer_file_is_supported (file=0x55a21fd4bdd0, thumbnailer=<optimized out>) at thunar-thumbnailer.c:844
#28 thunar_thumbnailer_begin_job (thumbnailer=thumbnailer@entry=0x55a21fc00f20, job=job@entry=0x55a21fb662f0) at thunar-thumbnailer.c:462
#29 0x000055a21d72c2cf in thunar_thumbnailer_queue_files
(thumbnailer=0x55a21fc00f20, lazy_checks=lazy_checks@entry=0, files=files@entry=0x7ffdbbed7a40 = {...}, request=0x55a21faa11a0, size=size@entry=THUNAR_THUMBNAIL_SIZE_DEFAULT) at thunar-thumbnailer.c:1153
#30 0x000055a21d72c35d in thunar_thumbnailer_queue_file (thumbnailer=<optimized out>, file=file@entry=0x55a21fd4bdd0, request=<optimized out>, size=size@entry=THUNAR_THUMBNAIL_SIZE_DEFAULT)
at thunar-thumbnailer.c:1125
#31 0x000055a21d726e53 in thunar_standard_view_row_changed (model=<optimized out>, path=<optimized out>, standard_view=0x55a21faa1510, iter=<optimized out>) at thunar-standard-view.c:3625
#32 thunar_standard_view_row_changed (model=<optimized out>, path=<optimized out>, iter=<optimized out>, standard_view=0x55a21faa1510) at thunar-standard-view.c:3595
#33 0x00007fb6fad286c0 in g_closure_invoke (closure=0x55a21f8d5d80, return_value=0x0, n_param_values=3, param_values=0x7ffdbbed7c60, invocation_hint=0x7ffdbbed7bb0) at ../glib/gobject/gclosure.c:832
#34 0x00007fb6fad56a36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffdbbed7d60, detail=detail@entry=0, instance=instance@entry=0x55a21fd760e0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdbbed7c60)
at ../glib/gobject/gsignal.c:3980
#35 0x00007fb6fad47a42 in signal_emit_valist_unlocked (instance=instance@entry=0x55a21fd760e0, signal_id=signal_id@entry=279, detail=detail@entry=0, var_args=var_args@entry=0x7ffdbbed7ec0)
at ../glib/gobject/gsignal.c:3612
--Type <RET> for more, q to quit, c to continue without paging--
#36 0x00007fb6fad47c77 in g_signal_emit_valist (instance=0x55a21fd760e0, signal_id=279, detail=0, var_args=var_args@entry=0x7ffdbbed7ec0) at ../glib/gobject/gsignal.c:3355
#37 0x00007fb6fad47d34 in g_signal_emit (instance=instance@entry=0x55a21fd760e0, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#38 0x00007fb6fb503327 in gtk_tree_model_row_changed (tree_model=tree_model@entry=0x55a21fd760e0, path=path@entry=0x55a21fbae3d0, iter=iter@entry=0x7ffdbbed7fb0) at ../gtk/gtk/gtktreemodel.c:1847
#39 0x000055a21d6ffd4c in thunar_list_model_file_changed (file_monitor=<optimized out>, file=<optimized out>, store=0x55a21fd760e0) at thunar-list-model.c:1476
#40 0x00007fb6fad286c0 in g_closure_invoke (closure=0x55a21f9182a0, return_value=0x0, n_param_values=2, param_values=0x7ffdbbed81f0, invocation_hint=0x7ffdbbed8140) at ../glib/gobject/gclosure.c:832
#41 0x00007fb6fad56a36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffdbbed82e0, detail=detail@entry=0, instance=instance@entry=0x55a21f86a430, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdbbed81f0)
at ../glib/gobject/gsignal.c:3980
#42 0x00007fb6fad47a42 in signal_emit_valist_unlocked (instance=instance@entry=0x55a21f86a430, signal_id=signal_id@entry=452, detail=detail@entry=0, var_args=var_args@entry=0x7ffdbbed8440)
at ../glib/gobject/gsignal.c:3612
#43 0x00007fb6fad47c77 in g_signal_emit_valist (instance=0x55a21f86a430, signal_id=452, detail=0, var_args=var_args@entry=0x7ffdbbed8440) at ../glib/gobject/gsignal.c:3355
#44 0x00007fb6fad47d34 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3675
#45 0x00007fb6fad286c0 in g_closure_invoke (closure=0x55a21f931820, return_value=0x0, n_param_values=1, param_values=0x7ffdbbed86f0, invocation_hint=0x7ffdbbed8640) at ../glib/gobject/gclosure.c:832
#46 0x00007fb6fad56b7a in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffdbbed87c0, detail=detail@entry=0, instance=instance@entry=0x55a21fd4bdd0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdbbed86f0)
at ../glib/gobject/gsignal.c:3813
#47 0x00007fb6fad47a42 in signal_emit_valist_unlocked (instance=instance@entry=0x55a21fd4bdd0, signal_id=signal_id@entry=265, detail=detail@entry=0, var_args=var_args@entry=0x7ffdbbed8920)
at ../glib/gobject/gsignal.c:3612
#48 0x00007fb6fad47c77 in g_signal_emit_valist (instance=0x55a21fd4bdd0, signal_id=265, detail=0, var_args=var_args@entry=0x7ffdbbed8920) at ../glib/gobject/gsignal.c:3355
#49 0x00007fb6fad47d34 in g_signal_emit (instance=instance@entry=0x55a21fd4bdd0, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3675
#50 0x00007fb6fbb5100d in thunarx_file_info_changed (file_info=file_info@entry=0x55a21fd4bdd0) at thunarx-file-info.c:376
#51 0x000055a21d6f03c9 in thunar_file_reload (file=0x55a21fd4bdd0) at thunar-file.c:4365
Edited by Gaël Bonithon