I'm experiencing random segfaults when working with archives. Whether it's a file-roller or xarchiver, it doesn't matter much. For example, when I select some folder or a bunch of files and choose to archive them, Thunar randomly closes. Or simply open Thunar, open some archive and start browsing inside of it. I've managed to start it from the console and reproduce it to see what happens (since it's a very random issue) and it just says 'Segmentation fault'. That's all.
Just thought that I'm not alone with this problem, maybe others would like to join this bug report.
Sorry if it's been reported already, but after searching here seems that I haven't found anything relevant.
Today I've experienced another interesting segfault. I have a folder with some .mp3 files and several .mp3.sfk files that were left after editing the songs in Sony Vegas under Windows. Anyway, I guess it can be just any other unknown (probably) to Thunar file types. So, when I open this folder, press Ctrl+A (to choose everything) and press Enter, Thunar segfaults.
I've managed to recreate it right now by putting an .mp3 file in a 'test' directory and created another, empty file (whatever the name, I named it 'test' also). Pressed Ctrl+A and Enter. Segfault.
Looks like I don't have debug symbols for Thunar in Arch and should recompile it with the appropriate option, but just don't have time at the moment. All I did was run 'strace Thunar' and got this:
I understand that it's a rare behavior for a user to choose all files in a dir (music ones + other, non-media files; or even placing non-media files with music, but, well... it can happen).
I'm using Arch and Deadbeef as an audio player. Xfce 4.18.4, Thunar 4.18.6. Always fresh and updated.
What's more bothering for me is the first issue I mentioned when I'm working with archives.
[…] Looks like I don't have debug symbols for Thunar in Arch and should recompile it with the appropriate option, but just don't have time at the moment.
Arch does provide debug symbols for many packages now, including Thunar. You can open the coredump in gdb and it will find debug symbols for you via debuginfod if configured to do so (I think it's the default), or you can install thunar-debug from the extra-debug repository. See
[…] when I open this folder, press Ctrl+A (to choose everything) and press Enter, Thunar segfaults.
I can reproduce this one, here is the backtrace for Thunar git master 4.18.0+507+g6b0387bd:
Program terminated with signal SIGSEGV, Segmentation fault.#0 0x00007f840430df59 in g_type_check_instance_is_fundamentally_a (type_instance=0x55cab3ff8496, fundamental_type=80) at ../glib/gobject/gtype.c:41644164 if (!type_instance || !type_instance->g_class)[Current thread is 1 (Thread 0x7f8402c1a680 (LWP 689))](gdb) bt#0 0x00007f840430df59 in g_type_check_instance_is_fundamentally_a (type_instance=0x55cab3ff8496, fundamental_type=0x50) at ../glib/gobject/gtype.c:4164#1 0x00007f84042f569e in g_object_unref (_object=0x55cab3ff8496) at ../glib/gobject/gobject.c:3807#2 0x00007f84041dda50 in g_list_foreach (list=<optimized out>, list@entry=0x55cfeedb6230 = {...}, func=0x7f84042f5680 <g_object_unref>, user_data=user_data@entry=0x0) at ../glib/glib/glist.c:1092#3 0x00007f84041dde40 in g_list_free_full (list=0x55cfeedb6230 = {...}, free_func=<optimized out>) at ../glib/glib/glist.c:246#4 0x00007f84041ccb73 in g_hash_table_remove_all_nodes (hash_table=0x55cfef009560, notify=<optimized out>, destruction=<optimized out>) at ../glib/glib/ghash.c:709#5 0x00007f84041cd800 in g_hash_table_remove_all_nodes (destruction=0, notify=1, hash_table=0x55cfef009560) at ../glib/glib/ghash.c:631#6 g_hash_table_remove_all (hash_table=0x55cfef009560) at ../glib/glib/ghash.c:1919#7 0x00007f84041d0dc3 in g_hash_table_destroy (hash_table=0x55cfef009560) at ../glib/glib/ghash.c:1516#8 0x000055cfed21d695 in thunar_action_manager_open_files (action_mgr=0x55cfeef957c0, files=<optimized out>, application_to_use=0x0) at thunar-action-manager.c:894#9 0x000055cfed21da16 in thunar_action_manager_poke_files_finish (browser=0x55cfeebb7b60, file=<optimized out>, target_file=<optimized out>, error=<optimized out>, user_data=0x55cfeef9ee30) at thunar-action-manager.c:1242#10 0x000055cfed224e6a in thunar_browser_poke_file (browser=browser@entry=0x55cfeebb7b60, file=0x55cfeecf5c50, widget=0x55cfeedda540, func=func@entry=0x55cfed21d8b0 <thunar_action_manager_poke_files_finish>, user_data=user_data@entry=0x55cfeef9ee30) at thunar-browser.c:537#11 0x000055cfed21d922 in thunar_action_manager_poke_files_finish (browser=0x55cfeebb7b60, file=<optimized out>, target_file=<optimized out>, error=<optimized out>, user_data=0x55cfeef9ee30) at thunar-action-manager.c:1257#12 0x000055cfed224e6a in thunar_browser_poke_file (browser=0x55cfeebb7b60, file=0x55cfeef39d00, widget=0x55cfeedda540, func=0x55cfed21d8b0 <thunar_action_manager_poke_files_finish>, user_data=0x55cfeef9ee30) at thunar-browser.c:537#13 0x00007f84042e76c0 in g_closure_invoke (closure=0x55cfeec05330, return_value=0x0, n_param_values=2, param_values=0x7ffc41f6d2c0, invocation_hint=0x7ffc41f6d240) at ../glib/gobject/gclosure.c:832#14 0x00007f8404315938 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x55cfeed0e900, detail=detail@entry=0, instance=instance@entry=0x55cfeec6c590, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc41f6d2c0) at ../glib/gobject/gsignal.c:3812#15 0x00007f8404306aa7 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc41f6d480) at ../glib/gobject/gsignal.c:3565#16 0x00007f8404306d34 in g_signal_emit (instance=instance@entry=0x55cfeec6c590, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3622#17 0x00007f84050dd199 in IA__exo_icon_view_item_activated (icon_view=icon_view@entry=0x55cfeec6c590, path=path@entry=0x55cfeefcd9f0) at exo-icon-view.c:5952#18 0x00007f84050dd276 in exo_icon_view_real_activate_cursor_item (icon_view=icon_view@entry=0x55cfeec6c590) at exo-icon-view.c:3007#19 0x00007f84050cc092 in _exo_marshal_BOOLEAN__VOID (closure=0x55cfeea93bb0, return_value=0x7ffc41f6d7d0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=<optimized out>) at exo-marshal.c:236#20 0x00007f84042e76c0 in g_closure_invoke (closure=0x55cfeea93bb0, return_value=0x7ffc41f6d7d0, n_param_values=1, param_values=0x55cfeefd00f0, invocation_hint=0x7ffc41f6d6d0) at ../glib/gobject/gclosure.c:832#21 0x00007f8404315e79 in signal_emit_unlocked_R.isra.0 (node=<optimized out>, detail=0, instance=0x55cfeec6c590, emission_return=0x7ffc41f6d7d0, instance_and_params=0x55cfeefd00f0) at ../glib/gobject/gsignal.c:3851#22 0x00007f84048b520e in gtk_binding_entry_activate (entry=<optimized out>, object=<optimized out>) at ../gtk/gtk/gtkbindings.c:646#23 0x00007f84048b6048 in binding_activate (binding_set=binding_set@entry=0x55cfeecf1cb0, entries=entries@entry=0x55cfeec13650 = {...}, object=object@entry=0x55cfeec6c590, is_release=is_release@entry=0, unbound=unbound@entry=0x7ffc41f6d88c) at ../gtk/gtk/gtkbindings.c:1455#24 0x00007f84048bb4b1 in gtk_bindings_activate_list (object=object@entry=0x55cfeec6c590, entries=entries@entry=0x55cfeec13650 = {...}, is_release=0) at ../gtk/gtk/gtkbindings.c:1514#25 0x00007f84048bb780 in gtk_bindings_activate_event (event=0x55cfeecbcd60, object=0x55cfeec6c590) at ../gtk/gtk/gtkbindings.c:1601#26 gtk_bindings_activate_event (object=0x55cfeec6c590, event=0x55cfeecbcd60) at ../gtk/gtk/gtkbindings.c:1581#27 0x00007f84050dea97 in exo_icon_view_key_press_event (widget=widget@entry=0x55cfeec6c590, event=0x55cfeecbcd60) at exo-icon-view.c:2553#28 0x00007f840488c34d in _gtk_marshal_BOOLEAN__BOXED (closure=0x55cfee959550, return_value=0x7ffc41f6da90, param_values=0x7ffc41f6daf0, marshal_data=<optimized out>, invocation_hint=<optimized out>, n_param_values=<optimized out>) at gtk/gtkmarshalers.c:84#29 0x00007f84042e7626 in g_closure_invoke (closure=0x55cfee959550, return_value=0x7ffc41f6da90, n_param_values=2, param_values=0x7ffc41f6daf0, invocation_hint=0x7ffc41f6da70) at ../glib/gobject/gclosure.c:832#30 0x00007f8404315e79 in signal_emit_unlocked_R.isra.0 (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x55cfeec6c590, emission_return=emission_return@entry=0x7ffc41f6dc00, instance_and_params=instance_and_params@entry=0x7ffc41f6daf0) at ../glib/gobject/gsignal.c:3851#31 0x00007f84043064cc in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc41f6dcb0) at ../glib/gobject/gsignal.c:3575#32 0x00007f8404306d34 in g_signal_emit (instance=instance@entry=0x55cfeec6c590, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3622#33 0x00007f8404b546e5 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x55cfeec6c590, event=0x55cfeecbcd60) at ../gtk/gtk/gtkwidget.c:7812#34 0x00007f8404b639dc in gtk_window_propagate_key_event (window=window@entry=0x55cfeedda540, event=event@entry=0x55cfeecbcd60) at ../gtk/gtk/gtkwindow.c:8259#35 0x00007f8404b660c4 in gtk_window_key_press_event (widget=0x55cfeedda540, event=0x55cfeecbcd60) at ../gtk/gtk/gtkwindow.c:8292#36 0x00007f840488c34d in _gtk_marshal_BOOLEAN__BOXED (closure=0x55cfee959550, return_value=0x7ffc41f6df90, param_values=0x7ffc41f6dff0, marshal_data=<optimized out>, invocation_hint=<optimized out>, n_param_values=<optimized out>) at gtk/gtkmarshalers.c:84#37 0x00007f84042e76c0 in g_closure_invoke (closure=0x55cfee959550, return_value=0x7ffc41f6df90, n_param_values=2, param_values=0x7ffc41f6dff0, invocation_hint=0x7ffc41f6df70) at ../glib/gobject/gclosure.c:832#38 0x00007f8404315e79 in signal_emit_unlocked_R.isra.0 (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x55cfeedda540, emission_return=emission_return@entry=0x7ffc41f6e100, instance_and_params=instance_and_params@entry=0x7ffc41f6dff0) at ../glib/gobject/gsignal.c:3851#39 0x00007f84043064cc in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc41f6e1b0) at ../glib/gobject/gsignal.c:3575#40 0x00007f8404306d34 in g_signal_emit (instance=instance@entry=0x55cfeedda540, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3622#41 0x00007f8404b546e5 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x55cfeedda540, event=0x55cfeecbcd60) at ../gtk/gtk/gtkwidget.c:7812#42 0x00007f84049ee9da in propagate_event (widget=widget@entry=0x55cfeedda540, event=event@entry=0x55cfeecbcd60, captured=captured@entry=0, topmost=topmost@entry=0x0) at ../gtk/gtk/gtkmain.c:2681#43 0x00007f84049eea52 in gtk_propagate_event (event=0x55cfeecbcd60, widget=0x55cfeedda540) at ../gtk/gtk/gtkmain.c:2725#44 0x00007f84049ef447 in gtk_main_do_event (event=0x55cfeecbcd60) at ../gtk/gtk/gtkmain.c:1921#45 gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1691#46 0x00007f840473ab87 in _gdk_event_emit (event=0x55cfeecbcd60) at ../gtk/gdk/gdkevents.c:73#47 _gdk_event_emit (event=0x55cfeecbcd60) at ../gtk/gdk/gdkevents.c:67#48 0x00007f8404792d38 in gdk_event_source_dispatch.lto_priv () at ../gtk/gdk/x11/gdkeventsource.c:354#49 0x00007f84041e3981 in g_main_dispatch (context=0x55cfee8b0270) at ../glib/glib/gmain.c:3460#50 g_main_context_dispatch (context=0x55cfee8b0270) at ../glib/glib/gmain.c:4200#51 0x00007f8404240b39 in g_main_context_iterate.isra.0 (context=context@entry=0x55cfee8b0270, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4276#52 0x00007f84041e1032 in g_main_context_iteration (context=context@entry=0x55cfee8b0270, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4343#53 0x00007f8404412ed6 in g_application_run (application=application@entry=0x55cfee8c12a0, argc=argc@entry=2, argv=argv@entry=0x7ffc41f6e718) at ../glib/gio/gapplication.c:2573#54 0x000055cfed211c4f in main (argc=2, argv=0x7ffc41f6e718) at main.c:86
Looks like Thunar tries to open both files (text and mp3) in VLC and Mousepad in my case, which is wrong, but I don't know if it's related to the crash.
Looks like Thunar tries to open both files (text and mp3) in VLC and Mousepad in my case, which is wrong
Yes, that's what happens, I guess.
And thank you for the Arch debug info. I'm pretty new to this distro. Do I have to debug it and provide here? Btw, have you ever experienced that 'archive issue' as well?
Guys, I'm sorry but I'm a bit at a loss. I'm using Artix actually (it's Arch based, but without systemd). Thought it would be easy but looks like it's not.
When I run gdb thunar I get this:
I'm pretty noob in all this. This distro also doesn't provide coredumpctl. Though they have a repo with -debug packages, but thunar-debug is 4.18.2 (not 4.18.6 like the current one). Should I simply install this additional package? What's next?
There's also a possibility to recompile thunar with --enable-debug option.
What's the step-by-step guide? What should be done first? Like, I'm running thunar and try to reproduce this bug and cause a segfault and then 'gdb thunar'? Right? Or what?
Hmm, not having systemd changes things quite a bit, you'd need to see Artix's own documentation in that case. As for the version mismatch between thunar and thunar-debug, maybe it's just a problem of mirror synchronization, or maybe the distribution is poorly maintained :)
In any case, for a non-reproducible crash, the easiest thing would be for you to know how to exploit the coredumps stored on your machine. Otherwise, you'll need to get Thunar to crash by running it in gdb (run command in the above terminal), and then get a backtrace from it (bt command).
I agree this could be the case, but I already got used to it.
Well, since it's a really random and rare bug you may close the issue. If I decide to change distro some time in the nearest future and experience this bug again, I'll open a new one.