crash on exit, in xtm_process_window_hide
Submitted by abandoned account
Assigned to Mike Massonnet
Description
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.gb89ba57e-1 also happens with extra/xfce4-taskmanager 1.2.0-1
I have no idea how to fix this, please advise. Cheers!
Version: 1.2.0