Since the wallpaper plugin is available in trunk, I've some random crashes when right clicking on items in the icon view. The crash occurs more often is used and item of the right click menu such as "Open terminal here". I get the following backtrace using gdb: (thunar:23819): GLib-GObject-WARNING **: cannot register existing type `XfconfError' Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb72956c0 (LWP 23819)] 0xb766fd28 in strcmp () from /lib/tls/i686/cmov/libc.so.6 (gdb) bt #0 0xb766fd28 in strcmp () from /lib/tls/i686/cmov/libc.so.6 #1 0xb77bfc24 in g_str_equal () from /usr/lib/libglib-2.0.so.0 #2 0xb778f733 in g_hash_table_lookup () from /usr/lib/libglib-2.0.so.0 #3 0xb778938d in g_quark_from_static_string () from /usr/lib/libglib-2.0.so.0 #4 0xb514213a in IA__xfconf_get_error_quark () at xfconf-errors.c:54 #5 0xb5141670 in IA__xfconf_init (error=0x0) at xfconf.c:88 #6 0xb515929e in twp_provider_init (twp_provider=0x8436f30) at twp-provider.c:111 #7 0xb784229e in g_type_create_instance () from /usr/lib/libgobject-2.0.so.0 #8 0xb7827242 in ?? () from /usr/lib/libgobject-2.0.so.0 #9 0xb7827a08 in g_object_newv () from /usr/lib/libgobject-2.0.so.0 #10 0xb7828561 in g_object_new_valist () from /usr/lib/libgobject-2.0.so.0 #11 0xb78286d0 in g_object_new () from /usr/lib/libgobject-2.0.so.0 #12 0xb7eda9f3 in IA__thunarx_provider_factory_list_providers ( factory=0x80c3078, type=138325648) at thunarx-provider-factory.c:339 #13 0x08091e52 in thunar_standard_view_context_menu (standard_view=0x822a008, button=3, time=4115068) at thunar-standard-view.c:1629 #14 0x08060ceb in thunar_abstract_icon_view_button_press_event ( view=0x8232030, event=0x8328c08, abstract_icon_view=0x822a008) at thunar-abstract-icon-view.c:532 #15 0xb7c638d4 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #16 0xb7821749 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #17 0xb7835f7b in ?? () from /usr/lib/libgobject-2.0.so.0 ---Type <return> to continue, or q <return> to quit--- #18 0xb7837937 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #19 0xb7837f59 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #20 0xb7d82667 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #21 0xb7c5cb21 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 #22 0xb7c5de92 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #23 0xb7ac5a9a in ?? () from /usr/lib/libgdk-x11-2.0.so.0 #24 0xb779ccc6 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #25 0xb77a0083 in ?? () from /usr/lib/libglib-2.0.so.0 #26 0xb77a0467 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #27 0xb7c5e264 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #28 0x0805eeb7 in main (argc=137666432, argv=0x1) at main.c:243 Please tell me if you need me to test something or give any additionnal information.
Just to repeat what I said on IRC: You cannot let your thunar plugin get unloaded and reloaded, ever. libxfconf registers GTypes using g_type_register_static(), which completly breaks if done in a dlopen()ed library that gets closed and reopened later. Until/unless thunar itself depends on xfconf, you need to mark your plugin as resident.
I'm marking this as fixed, it did not happen again during the last two or three days with the changes made by Stephan.