This one's not so easy to reproduce. Basically I have my XF86AudioMute button set to "amixer set Master toggle". If I keep resetting the command and the button (alternating back and forth), eventually xfce4-settings-helper crashes. Backtrace: #0 0x0f4f9314 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x0f4fad80 in *__GI_abort () at abort.c:88 #2 0x0f537d9c in __libc_message (do_abort=2, fmt=0xf601a80 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:170 #3 0x0f53f324 in malloc_printerr (action=3, str=0xf601b38 "munmap_chunk(): invalid pointer", ptr=<value optimized out>) at malloc.c:5949 #4 0x0f6755a0 in g_free () from /usr/lib/libglib-2.0.so.0 #5 0x0f65c1e8 in ?? () from /usr/lib/libglib-2.0.so.0 #6 0x0f65cc58 in ?? () from /usr/lib/libglib-2.0.so.0 #7 0x10006754 in xfce_keyboard_shortcuts_helper_property_changed ( channel=<value optimized out>, property=0xf725944 <Address 0xf725944 out of bounds>, value=<value optimized out>, helper=0x1005bd10) at keyboard-shortcuts.c:316 #8 0x0ff7cabc in xfconf_marshal_VOID__STRING_BOXED (closure=0x10042e20, return_value=<value optimized out>, n_param_values=<value optimized out>, param_values=0xbf8f6190, invocation_hint=<value optimized out>, marshal_data=0x1000662c) at xfconf-marshal.c:121 #9 0x0f73d0e4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #10 0x0f755754 in ?? () from /usr/lib/libgobject-2.0.so.0 #11 0x0f756f68 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #12 0x0f757374 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #13 0x0ff79118 in xfconf_channel_property_removed ( proxy=<value optimized out>, channel_name=<value optimized out>, property=0x100631c0 "/XF86AudioMute", user_data=<value optimized out>) at xfconf-channel.c:282 #14 0x0ff7c9e8 in xfconf_marshal_VOID__STRING_STRING (closure=0x100417f8, return_value=<value optimized out>, n_param_values=<value optimized out>, param_values=0x1003fa68, invocation_hint=<value optimized out>, marshal_data=0xff79060) at xfconf-marshal.c:158 #15 0x0fe25120 in ?? () from /usr/lib/libdbus-glib-1.so.2 #16 0x0f73d0e4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #17 0x0f755754 in ?? () from /usr/lib/libgobject-2.0.so.0 #18 0x0f756f68 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #19 0x0f757374 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #20 0x0fe261e0 in ?? () from /usr/lib/libdbus-glib-1.so.2 #21 0x0f40fe68 in dbus_connection_dispatch () from /usr/lib/libdbus-1.so.3 #22 0x0fe1c0ac in ?? () from /usr/lib/libdbus-glib-1.so.2 #23 0x0f66bff8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #24 0x0f66ffb8 in ?? () from /usr/lib/libglib-2.0.so.0 #25 0x0f670424 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #26 0x0fb034ac in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #27 0x10004cfc in main (argc=1, argv=0xbf8f6e84) at main.c:169
If I set MALLOC_CHECK=3 before running xfce4-settings-helper, I get a *slightly* different backtrace: #0 0x0f4f9314 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x0f4fad80 in *__GI_abort () at abort.c:88 #2 0x0f537d9c in __libc_message (do_abort=2, fmt=0xf601a80 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:170 #3 0x0f53f324 in malloc_printerr (action=3, str=0xf601b78 "free(): invalid pointer", ptr=<value optimized out>) at malloc.c:5949 #4 0x0f541158 in *__GI___libc_free (mem=0x10065ad9) at malloc.c:3589 #5 0x0f6755a0 in g_free () from /usr/lib/libglib-2.0.so.0 #6 0x0f65ce64 in ?? () from /usr/lib/libglib-2.0.so.0 #7 0x10006954 in xfce_keyboard_shortcuts_helper_property_changed ( channel=<value optimized out>, property=<value optimized out>, value=0xb3c91203, helper=0x10043368) at keyboard-shortcuts.c:335 #8 0x0ff7cabc in xfconf_marshal_VOID__STRING_BOXED (closure=0x10043928, return_value=<value optimized out>, n_param_values=<value optimized out>, param_values=0xbff40190, invocation_hint=<value optimized out>, marshal_data=0x1000662c) at xfconf-marshal.c:121 #9 0x0f73d0e4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #10 0x0f755754 in ?? () from /usr/lib/libgobject-2.0.so.0 #11 0x0f756f68 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #12 0x0f757374 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #13 0x0ff791dc in xfconf_channel_property_changed ( proxy=<value optimized out>, channel_name=<value optimized out>, property=0x10065ad8 "/XF86AudioMute", value=0x10040350, user_data=<value optimized out>) at xfconf-channel.c:266 #14 0x0ff7cb98 in xfconf_marshal_VOID__STRING_STRING_BOXED ( closure=0x10040d18, return_value=<value optimized out>, n_param_values=<value optimized out>, param_values=0x10041780, invocation_hint=<value optimized out>, marshal_data=0xff79138) at xfconf-marshal.c:83 #15 0x0fe25120 in ?? () from /usr/lib/libdbus-glib-1.so.2 #16 0x0f73d0e4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #17 0x0f755754 in ?? () from /usr/lib/libgobject-2.0.so.0 #18 0x0f756f68 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #19 0x0f757374 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #20 0x0fe261e0 in ?? () from /usr/lib/libdbus-glib-1.so.2 #21 0x0f40fe68 in dbus_connection_dispatch () from /usr/lib/libdbus-1.so.3 #22 0x0fe1c0ac in ?? () from /usr/lib/libdbus-glib-1.so.2 #23 0x0f66bff8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #24 0x0f66ffb8 in ?? () from /usr/lib/libglib-2.0.so.0 #25 0x0f670424 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #26 0x0fb034ac in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #27 0x10004cfc in main (argc=1, argv=0xbff40e64) at main.c:169
I stress-tested this today and it didn't crash a single time. Hm ...
Nope, I can't get it to crash anymore. Guess you did something in the meantime that fixed it.