Closing xfce4-taskmanager yields the following in journald (journalctl -efa --no-hostname): Apr 02 12:08:26 kernel: traps: xfce4-taskmanag[18561] general protection ip:5584c62e8224 sp:7ffd55a7a780 error:0 in xfce4-taskmanager[5584c62dd000+24000] Apr 02 12:08:26 systemd-coredump[18706]: Process 18561 (xfce4-taskmanag) of user 1000 dumped core. Stack trace of thread 18561: #0 0x00005584c62e8224 xtm_process_window_hide (xfce4-taskmanager) #1 0x00007facb337cc2d g_closure_invoke (libgobject-2.0.so.0) #2 0x00007facb3390c88 n/a (libgobject-2.0.so.0) #3 0x00007facb3399746 g_signal_emit_valist (libgobject-2.0.so.0) #4 0x00007facb339a180 g_signal_emit (libgobject-2.0.so.0) #5 0x00007facb4537afc gtk_widget_hide (libgtk-3.so.0) #6 0x00007facb4537d46 n/a (libgtk-3.so.0) #7 0x00007facb3381eb5 g_object_unref (libgobject-2.0.so.0) #8 0x00005584c62e66c2 main (xfce4-taskmanager) #9 0x00007facb2aa0f4a __libc_start_main (libc.so.6) #10 0x00005584c62e677a _start (xfce4-taskmanager) Stack trace of thread 18563: #0 0x00007facb2b6b97b __poll (libc.so.6) #1 0x00007facb30a1613 n/a (libglib-2.0.so.0) #2 0x00007facb30a19d2 g_main_loop_run (libglib-2.0.so.0) #3 0x00007facb3699b78 n/a (libgio-2.0.so.0) #4 0x00007facb30c9cea n/a (libglib-2.0.so.0) #5 0x00007facb2e3e08c start_thread (libpthread.so.0) #6 0x00007facb2b75e7f __clone (libc.so.6) Stack trace of thread 18562: #0 0x00007facb2b6b97b __poll (libc.so.6) #1 0x00007facb30a1613 n/a (libglib-2.0.so.0) #2 0x00007facb30a172e g_main_context_iteration (libglib-2.0.so.0) #3 0x00007facb30a1782 n/a (libglib-2.0.so.0) #4 0x00007facb30c9cea n/a (libglib-2.0.so.0) #5 0x00007facb2e3e08c start_thread (libpthread.so.0) #6 0x00007facb2b75e7f __clone (libc.so.6) Stack trace of thread 18564: #0 0x00007facb2b70879 syscall (libc.so.6) #1 0x00007facb30e87ed g_cond_wait_until (libglib-2.0.so.0) #2 0x00007facb3073953 n/a (libglib-2.0.so.0) #3 0x00007facb3073f3e g_async_queue_timeout_pop (libglib-2.0.so.0) #4 0x00007facb30ca801 n/a (libglib-2.0.so.0) #5 0x00007facb30c9cea n/a (libglib-2.0.so.0) #6 0x00007facb2e3e08c start_thread (libpthread.so.0) #7 0x00007facb2b75e7f __clone (libc.so.6) Here's recompiled with -ggdb: $ gdb xfce4-taskmanager GNU gdb (GDB) 8.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from xfce4-taskmanager...done. (gdb) r Starting program: /usr/bin/xfce4-taskmanager [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". [New Thread 0x7fffed043700 (LWP 22801)] [New Thread 0x7fffec842700 (LWP 22802)] [New Thread 0x7fffe67c3700 (LWP 22804)] xfce4-taskmanager-Message: 12:35:04.816: Running as xftroxgpx on z5 Thread 1 "xfce4-taskmanag" received signal SIGSEGV, Segmentation fault. 0x000055555555fdfe in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 543 if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) (gdb) thread apply all bt no-filters full -100 Thread 4 (Thread 0x7fffe67c3700 (LWP 22804)): #0 0x00007ffff56e5879 in syscall () from /usr/lib/libc.so.6 No symbol table info available. #1 0x00007ffff5c5d7ed in g_cond_wait_until () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #2 0x00007ffff5be8953 in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #3 0x00007ffff5be8f3e in g_async_queue_timeout_pop () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #4 0x00007ffff5c3f801 in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #5 0x00007ffff5c3ecea in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #6 0x00007ffff59b308c in start_thread () from /usr/lib/libpthread.so.0 No symbol table info available. #7 0x00007ffff56eae7f in clone () from /usr/lib/libc.so.6 No symbol table info available. Thread 3 (Thread 0x7fffec842700 (LWP 22802)): #0 0x00007ffff56e097b in poll () from /usr/lib/libc.so.6 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #1 0x00007ffff5c16613 in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #2 0x00007ffff5c169d2 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #3 0x00007ffff620eb78 in ?? () from /usr/lib/libgio-2.0.so.0 No symbol table info available. #4 0x00007ffff5c3ecea in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #5 0x00007ffff59b308c in start_thread () from /usr/lib/libpthread.so.0 No symbol table info available. #6 0x00007ffff56eae7f in clone () from /usr/lib/libc.so.6 No symbol table info available. Thread 2 (Thread 0x7fffed043700 (LWP 22801)): #0 0x00007ffff56e097b in poll () from /usr/lib/libc.so.6 No symbol table info available. #1 0x00007ffff5c16613 in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #2 0x00007ffff5c1672e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #3 0x00007ffff5c16782 in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #4 0x00007ffff5c3ecea in ?? () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #5 0x00007ffff59b308c in start_thread () from /usr/lib/libpthread.so.0 No symbol table info available. #6 0x00007ffff56eae7f in clone () from /usr/lib/libc.so.6 No symbol table info available. Thread 1 (Thread 0x7ffff7fb3e00 (LWP 22797)): #0 0x000055555555fdfe in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 __inst = 0x555555a88280 __t = 93824994896496 __r = 32767 winx = -11664 winy = 32767 __func__ = "xtm_process_window_hide" #1 0x00007ffff5ef1c2d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #2 0x00007ffff5f05c88 in ?? () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #3 0x00007ffff5f0e746 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #4 0x00007ffff5f0f180 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #5 0x00007ffff70acafc in gtk_widget_hide () from /usr/lib/libgtk-3.so.0 No symbol table info available. #6 0x00007ffff70acd46 in ?? () from /usr/lib/libgtk-3.so.0 No symbol table info available. #7 0x00007ffff5ef6eb5 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #8 0x000055555555de2a in main (argc=1, argv=0x7fffffffd6a8) at main.c:236 app = 0x5555557d7aa0 error = 0x0 (gdb) frame 1 #1 0x00007ffff5ef1c2d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 (gdb) frame 2 #2 0x00007ffff5f05c88 in ?? () from /usr/lib/libgobject-2.0.so.0 (gdb) frame 3 #3 0x00007ffff5f0e746 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 (gdb) frame 4 #4 0x00007ffff5f0f180 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 (gdb) frame 5 #5 0x00007ffff70acafc in gtk_widget_hide () from /usr/lib/libgtk-3.so.0 (gdb) frame 6 #6 0x00007ffff70acd46 in ?? () from /usr/lib/libgtk-3.so.0 (gdb) frame 7 #7 0x00007ffff5ef6eb5 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 (gdb) frame 8 #8 0x000055555555de2a in main (argc=1, argv=0x7fffffffd6a8) at main.c:236 236 g_object_unref (window); (gdb) frame 9 #0 0x0000000000000000 in ?? () (gdb) frame 10 #0 0x0000000000000000 in ?? () (gdb) frame 0 #0 0x000055555555fdfe in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 543 if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) (gdb) Ok, so relevant: #0 0x000055555555fdfe in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 __inst = 0x555555a88280 __t = 93824994896496 __r = 32767 winx = -11664 winy = 32767 __func__ = "xtm_process_window_hide" #0 0x000055555555fdfe in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 543 if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) what I see in src/process-window.c static void xtm_process_window_hide (GtkWidget *widget) { gint winx, winy; g_return_if_fail (GTK_IS_WIDGET (widget)); if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) return; gtk_window_get_position (GTK_WINDOW (XTM_PROCESS_WINDOW (widget)->window), &winx, &winy); gtk_widget_hide (XTM_PROCESS_WINDOW (widget)->window); gtk_window_move (GTK_WINDOW (XTM_PROCESS_WINDOW (widget)->window), winx, winy); GTK_WIDGET_CLASS (xtm_process_window_parent_class)->hide(widget); } tested on ArchLinux as xfce4-taskmanager-git 1.2.0.r94.gb89ba57-1 also happens with extra/xfce4-taskmanager 1.2.0-1 I have no idea how to fix this, please advise. Cheers!
this is how I'm compiling it: export CFLAGS="-fstack-protector-strong -fno-omit-frame-pointer -ftrack-macro-expansion=2 -ggdb -fvar-tracking-assignments -fPIC" export CPPFLAGS="${CFLAGS}" export CXXFLAGS="${CFLAGS}" ./autogen.sh \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-gtk3 \ --enable-wnck3 make seen here in context: https://github.com/xftroxgpx/a3/blob/0fa1c617bb79bcd29ad2d2af00208f621dcd889c/system/Z575/OSes/3archlinux/on_baremetal/filesystem_now/archlinux/home/xftroxgpx/build/1packages/xfce4-taskmanager-git/PKGBUILD#L43-L53
I realized a 'bt full' would've been simpler on the eyes: (gdb) bt full #0 0x000055555555ff6f in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 __inst = 0x555555a98280 __t = 93824994896432 __r = 32767 winx = -11664 winy = 32767 __func__ = "xtm_process_window_hide" #1 0x00007ffff5ef1c2d in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0 #2 0x00007ffff5f05c88 in () at /usr/lib/libgobject-2.0.so.0 #3 0x00007ffff5f0e746 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 #4 0x00007ffff5f0f180 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 #5 0x00007ffff70acafc in gtk_widget_hide () at /usr/lib/libgtk-3.so.0 #6 0x00007ffff70acd46 in () at /usr/lib/libgtk-3.so.0 #7 0x00007ffff5ef6eb5 in g_object_unref () at /usr/lib/libgobject-2.0.so.0 #8 0x000055555555e061 in main (argc=1, argv=0x7fffffffd6a8) at main.c:236 app = 0x5555557d7aa0 error = 0x0 (gdb) (gdb) frame 0 #0 0x000055555555ff6f in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 543 if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) (gdb) frame 8 #8 0x000055555555e061 in main (argc=1, argv=0x7fffffffd6a8) at main.c:236 236 g_object_unref (window);
Created attachment 7656 Fix patch I can reproduce with current master and the attached patch works for me.
Created attachment 7657 Fix patch 2 Ignore the previous patch, it contains a file that should be in .gitignore.
(In reply to Andre Miranda from comment #4) > Created attachment 7657 > Fix patch 2 > > Ignore the previous patch, it contains a file that should be in .gitignore. Thanks for the patch Andre. However, it doesn't work for me - I still get the same crash, I even cleaned the build dir and I double checked that the patch did get applied: static void xtm_process_window_hide (GtkWidget *widget) { gint winx, winy; g_return_if_fail (XTM_IS_PROCESS_WINDOW (widget)); if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) return; gtk_window_get_position (GTK_WINDOW (XTM_PROCESS_WINDOW (widget)->window), &winx, &winy); gtk_widget_hide (XTM_PROCESS_WINDOW (widget)->window); gtk_window_move (GTK_WINDOW (XTM_PROCESS_WINDOW (widget)->window), winx, winy); GTK_WIDGET_CLASS (xtm_process_window_parent_class)->hide(widget); } I'm not sure what I'm missing, especially since you mention that the patch works for you. Thread 1 "xfce4-taskmanag" received signal SIGSEGV, Segmentation fault. 0x000055555555ff6f in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 543 if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) (gdb) frame 0 #0 0x000055555555ff6f in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 543 if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) (gdb) bt full #0 0x000055555555ff6f in xtm_process_window_hide (widget=0x555555a7c260) at process-window.c:543 __inst = 0x555555a88280 __t = 93824994896576 __r = 32767 winx = -11664 winy = 32767 __func__ = "xtm_process_window_hide" #1 0x00007ffff5ef1c2d in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0 #2 0x00007ffff5f05c88 in () at /usr/lib/libgobject-2.0.so.0 #3 0x00007ffff5f0e746 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0 #4 0x00007ffff5f0f180 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0 #5 0x00007ffff70acafc in gtk_widget_hide () at /usr/lib/libgtk-3.so.0 #6 0x00007ffff70acd46 in () at /usr/lib/libgtk-3.so.0 #7 0x00007ffff5ef6eb5 in g_object_unref () at /usr/lib/libgobject-2.0.so.0 #8 0x000055555555e061 in main (argc=1, argv=0x7fffffffd6a8) at main.c:236 app = 0x5555557d7aa0 error = 0x0 (gdb)
Here's some more info: $ pacman -Qo /usr/lib/libgobject-2.0.so.0 /usr/lib/libgobject-2.0.so.0 is owned by glib2 2.56.0+7+g66948ae23-1 $ pacman -Qi glib2 Name : glib2 Version : 2.56.0+7+g66948ae23-1 Description : Low level core library Architecture : x86_64 URL : https://wiki.gnome.org/Projects/GLib Licenses : LGPL2.1 Groups : None Provides : None Depends On : pcre libffi libutil-linux zlib Optional Deps : python: for gdbus-codegen and gtester-report [installed] libelf: gresource inspection tool [installed] Required By : at-spi2-core atk avahi cairo dbus-c++ dbus-glib dconf desktop-file-utils emacs-nox gdk-pixbuf2 gettext glib-networking glib-perl glibmm gobject-introspection-runtime graphene gsettings-desktop-schemas gstreamer gts harfbuzz json-glib libass libcloudproviders libcroco libgudev libgusb libical libidl2 liblqr libplist libsecret libsoup libwacom libxfce4util-git libxklavier mc-git pkg-config polkit poppler-glib pygobject2-devel python-dbus python2-dbus rest shared-mime-info vala Optional For : libproxy Conflicts With : None Replaces : None Installed Size : 13.96 MiB Packager : Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> Build Date : Tue 13 Mar 2018 07:33:52 PM CET Install Date : Sun 25 Mar 2018 04:23:41 AM CEST Install Reason : Installed as a dependency for another package Install Script : No Validated By : Signature $ pacman -Qo /usr/lib/libgtk-3.so.0 /usr/lib/libgtk-3.so.0 is owned by gtk3 3.22.29+60+ge42d8598ca-1 $ pacman -Qi gtk3 Name : gtk3 Version : 3.22.29+60+ge42d8598ca-1 Description : GObject-based multi-platform GUI toolkit Architecture : x86_64 URL : http://www.gtk.org/ Licenses : LGPL Groups : None Provides : gtk3-print-backends Depends On : atk cairo libxcursor libxinerama libxrandr libxi libepoxy gdk-pixbuf2 dconf libxcomposite libxdamage pango shared-mime-info at-spi2-atk wayland libxkbcommon adwaita-icon-theme json-glib librsvg wayland-protocols desktop-file-utils mesa cantarell-fonts colord rest libcups libcanberra gtk-update-icon-cache Optional Deps : None Required By : chromium-dev evince gnome-desktop gtkmm3 gtksourceview3 libgxps libwnck3 libxfce4ui-devel polkit-gnome thunar-git vte3 Optional For : avahi ghostscript libinput qt5-base Conflicts With : gtk3-print-backends Replaces : gtk3-print-backends<=3.22.26-1 Installed Size : 70.03 MiB Packager : Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> Build Date : Sun 01 Apr 2018 02:51:02 AM CEST Install Date : Sun 01 Apr 2018 06:03:26 AM CEST Install Reason : Installed as a dependency for another package Install Script : Yes Validated By : Signature
Ok, I now have no doubt that the problem is in glib2 Here it is crashing with glib2-2.56.0+7+g66948ae23-1-x86_64.pkg.tar Thread 1 "xfce4-taskmanag" received signal SIGSEGV, Segmentation fault. 0x000055555555ff6f in xtm_process_window_hide ( widget=0x555555a7a260 [XtmProcessWindow]) at process-window.c:543 543 if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) (gdb) bt full #0 0x000055555555ff6f in xtm_process_window_hide (widget=0x555555a7a260 [XtmProcessWindow]) at process-window.c:543 __inst = 0x555555a84280 __t = 93824994896128 __r = 0 winx = 1434787616 winy = 28 __func__ = "xtm_process_window_hide" #1 0x00007ffff5d3cbff in g_cclosure_marshal_VOID__VOID (closure=0x5555557cd480, return_value=0x0, n_param_values=1, param_values=0x7fffffffd130, invocation_hint=0x7fffffffd0e0, marshal_data=0x55555555fe82 <xtm_process_window_hide>) at gmarshal.c:875 callback = 0x55555555fe82 <xtm_process_window_hide> cc = 0x5555557cd480 data1 = 0x555555a7a260 data2 = 0x5555557de900 __func__ = "g_cclosure_marshal_VOID__VOID" #2 0x00007ffff5d39e59 in g_type_class_meta_marshal (closure=0x5555557cd480, return_value=0x0, n_param_values=1, param_values=0x7fffffffd130, invocation_hint=0x7fffffffd0e0, marshal_data=0xb0) at gclosure.c:997 class = 0x555555a58c70 callback = 0x55555555fe82 <xtm_process_window_hide> offset = 176 ---Type <return> to continue, or q <return> to quit--- #6 0x00007ffff5d57834 in <emit signal ??? on instance 0x555555a7a260 [XtmProcessWindow]> (instance=0x555555a7a260, signal_id=37, detail=0) at gsignal.c:3447 var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd480, reg_save_area = 0x7fffffffd3c0}} #3 0x00007ffff5d3976f in g_closure_invoke (closure=0x5555557cd480, return_value=0x0, n_param_values=1, param_values=0x7fffffffd130, invocation_hint=0x7fffffffd0e0) at gclosure.c:804 marshal = 0x7ffff5d39de4 <g_type_class_meta_marshal> marshal_data = 0xb0 in_marshal = 0 real_closure = 0x5555557cd460 __func__ = "g_closure_invoke" #4 0x00007ffff5d57d0e in signal_emit_unlocked_R (node=0x5555557cd4d0, detail=0, instance=0x555555a7a260, emission_return=0x0, instance_and_params=0x7fffffffd130) at gsignal.c:3565 accumulator = 0x0 emission = {next = 0x0, instance = 0x555555a7a260, ihint = {signal_id = 37, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 93824995694704} class_closure = 0x5555557cd480 hlist = 0x0 ---Type <return> to continue, or q <return> to quit--- handler_list = 0x0 return_accu = 0x0 accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 37 max_sequential_handler_number = 1736 return_value_altered = 0 #5 0x00007ffff5d572be in g_signal_emit_valist (instance=0x555555a7a260, signal_id=37, detail=0, var_args=0x7fffffffd3a0) at gsignal.c:3391 instance_and_params = 0x7fffffffd130 signal_return_type = 4 param_values = 0x7fffffffd148 node = 0x5555557cd4d0 i = 0 n_params = 0 __func__ = "g_signal_emit_valist" #7 0x00007ffff70980c4 in gtk_widget_hide (widget=0x555555a7a260 [XtmProcessWindow]) at gtkwidget.c:4901 toplevel = 0x555555a7a260 [XtmProcessWindow] parent = 0x555555a7a260 [XtmProcessWindow] ---Type <return> to continue, or q <return> to quit--- __func__ = "gtk_widget_hide" #8 0x00007ffff70a5b34 in gtk_widget_dispose (object=0x555555a7a260 [XtmProcessWindow]) at gtkwidget.c:12085 widget = 0x555555a7a260 [XtmProcessWindow] priv = 0x555555a7a170 sizegroups = Python Exception <class 'gdb.MemoryError'> Cannot access memory at address 0xdc7d83dc4589008b: #9 0x00007ffff5d465dd in g_object_unref (_object=0x555555a7a260) at gobject.c:3303 weak_locations = 0x0 object = 0x555555a7a260 [XtmProcessWindow] old_ref = 1 __func__ = "g_object_unref" #10 0x000055555555e061 in main (argc=1, argv=0x7fffffffd688) at main.c:236 app = 0x5555557d7aa0 [GApplication] error = 0x0 (gdb) frame 0 #0 0x000055555555ff6f in xtm_process_window_hide (widget=0x555555a7a260 [XtmProcessWindow]) at process-window.c:543 543 if (!GTK_IS_WIDGET (XTM_PROCESS_WINDOW (widget)->window)) (gdb) frame 1 #1 0x00007ffff5d3cbff in g_cclosure_marshal_VOID__VOID (closure=0x5555557cd480, return_value=0x0, n_param_values=1, param_values=0x7fffffffd130, invocation_hint=0x7fffffffd0e0, marshal_data=0x55555555fe82 <xtm_process_window_hide>) at gmarshal.c:875 875 callback (data1, (gdb) frame 2 #2 0x00007ffff5d39e59 in g_type_class_meta_marshal (closure=0x5555557cd480, return_value=0x0, n_param_values=1, param_values=0x7fffffffd130, invocation_hint=0x7fffffffd0e0, marshal_data=0xb0) at gclosure.c:997 997 closure->marshal (closure, (gdb) frame 3 #3 0x00007ffff5d3976f in g_closure_invoke (closure=0x5555557cd480, return_value=0x0, n_param_values=1, param_values=0x7fffffffd130, invocation_hint=0x7fffffffd0e0) at gclosure.c:804 804 marshal (closure, (gdb) frame 4 #4 0x00007ffff5d57d0e in signal_emit_unlocked_R (node=0x5555557cd4d0, detail=0, instance=0x555555a7a260, emission_return=0x0, instance_and_params=0x7fffffffd130) at gsignal.c:3565 3565 g_closure_invoke (class_closure, (gdb) frame 5 #5 0x00007ffff5d572be in g_signal_emit_valist (instance=0x555555a7a260, signal_id=37, detail=0, var_args=0x7fffffffd3a0) at gsignal.c:3391 3391 signal_emit_unlocked_R (node, detail, instance, NULL, instance_and_params); (gdb) frame 6 #6 0x00007ffff5d57834 in g_signal_emit (instance=0x555555a7a260, signal_id=37, detail=0) at gsignal.c:3447 3447 g_signal_emit_valist (instance, signal_id, detail, var_args); (gdb) frame 7 #7 0x00007ffff70980c4 in gtk_widget_hide (widget=0x555555a7a260 [XtmProcessWindow]) at gtkwidget.c:4901 4901 g_signal_emit (widget, widget_signals[HIDE], 0); (gdb) frame 8 #8 0x00007ffff70a5b34 in gtk_widget_dispose (object=0x555555a7a260 [XtmProcessWindow]) at gtkwidget.c:12085 12085 gtk_widget_hide (widget); (gdb) frame 9 #9 0x00007ffff5d465dd in g_object_unref (_object=0x555555a7a260) at gobject.c:3303 3303 G_OBJECT_GET_CLASS (object)->dispose (object); (gdb) frame 10 #10 0x000055555555e061 in main (argc=1, argv=0x7fffffffd688) at main.c:236 236 g_object_unref (window); (gdb) frame 11 #0 0x0000000000000000 in ?? () (gdb) And it just doesn't crash at all with glib2-2.56.0+16+gecabc6e21-1-x86_64.pkg.tar (tested both versions with Andre's patch for xfce4-taskmanager included!) In other words: glib commit 66948ae231f75a548c8a2eb7b3a9d64cfd728b8e is bad and glib commit ecabc6e21cd9db7dedd8aa0eb487aa5822f1eb30 is good, as seen on https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/glib2&id=42e3747c4017ad5aadbda661b5c816a18c0b8e57
Actually, I was wrong: the difference is not the commits themselves but rather the fact the failing one had been run with --enabled-debug=yes and the good one with --enable-debug=minimum as seen here: https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/glib2&id=42e3747c4017ad5aadbda661b5c816a18c0b8e57
Ok, I've just REconfirmed the following: 1+3= all good, no crash 2+3= crash 2+4= crash 1+4= all good, no crash (Naive)Conclusion: the problem of xfce4-taskmanager crashing on exit is solely within glib2 Legend: 1. glib2 compiled with --enable-debug=minimum 2. glib2 compiled with --enable-debug=yes 3. xfce4-taskmanager with Andre's patch from Comment 4 above 4. xfce4-taskmanager WITHOUT Andre's patch from Comment 4 above crash = refers to xfce4-taskmanager crashes on exit, as shown in Description aka https://bugzilla.xfce.org/show_bug.cgi?id=14320#c0 (all dirs were `make clean`-ed before recompiling) As ArchLinux temporarily let --enable-debug=yes glib2 loose (as version 2.56.0+7+g66948ae23-1, see url in my previous comment) which is fixed(as version 2.56.0+16+gecabc6e21) but not yet available as an update (aka via `sudo pacman -Syu`), this is why I've encountered the xfce4-taskmanager segfault on exit. how I compiled glib2: https://github.com/xftroxgpx/a3/blob/50e662f3fffc4782787ea44d04a3961fc5fd7a7e/system/Z575/OSes/3archlinux/on_baremetal/filesystem_now/archlinux/home/xftroxgpx/build/1packages/glib2/PKGBUILD#L68
I see, my patch didn't actually fix the problem. If you dismiss xfce4-taskmanager with esc key, no segfaults. However, if you press the X window button or alt+f4 it segfaults with or without the patch. Is that the case for you? I'm also running Arch, but glib2 here is at version 2.56.0+7+g66948ae23-1. If you can confirm that xfce4-taskmanager doesn't crash when exiting via esc key, then I guess it is its fault for not gracefully close.
I can indeed confirm that indeed xfce4-taskmanager does not crash when pressing Esc key, but it does crash when closed via X window button(or alt+f4) as you said! (interesting, pressing Esc to exit didn't even enter my mind :D - thanks Andre!) (tested without your patch, with glib2-2.56.0+16+gecabc6e21-1-x86_64.pkg.tar which was compiled with --enable-debug=yes; I've also tested the same with Arch's 2.56.0+7+g66948ae23-1 which has been compiled with --enable-debug=yes by them, to have the same effect: crash when alt+f4, no crash when Esc) (and no crashes in either case with same glib compiled with --enable-debug=minimum , as usual) Cheers!
When esc key is pressed, delete_window callback will be invoked. When the window is closed, both delete_window and destroy_window are called. If I comment this line: main.c:238 -> g_object_unref (window); No crashes will arise, though I don't know why the code that handles the window finalization is so complicated, probably it's stepping on its own toes...
Is this fixed with taskman 1.2.3?
-- GitLab Migration Automatic Message -- This bug has been migrated to xfce.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.xfce.org/apps/xfce4-taskmanager/-/issues/16. Please create an account or use an existing account on one of our supported OAuth providers. If you want to fork to submit patches and merge requests please continue reading here: https://docs.xfce.org/contribute/dev/git/start#gitlab_forks_and_merge_requests Also feel free to reach out to us on the mailing list https://mail.xfce.org/mailman/listinfo/xfce4-dev