! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
Xfce4-terminal crashes when disabling the touchpad while moving the cursor in...
Status:
RESOLVED: INVALID
Product:
Xfce4-terminal
Component:
General

Comments

Description Eyal Chojnowski 2019-04-10 18:11:16 CEST
Hello, this being my first bug report for xfce4-terminal and xfce4 in general please be indulgent and tell me if any more info is needed.

I experienced some days ago a weird crash in xfce4-terminal which affects every opened instances of xfce4-terminal. As it happened a few more times and became quite troublesome I decided to try to reproduce it and I just found a way to do so.

It may be important to note that I am not using xfce4-terminal in a xfce4 environment but instead in i3wm.

To reproduce the bug:

- While the window has focus, move the cursor with the touchpad inside the window
- While still moving the cursor, disable the touchpad using a shortcut

In my i3 config I mapped `Alt + t` to run a script I wrote which toggle the touchpad. You can see the script in question below:

```sh
#!/bin/sh

TOUCHPAD_STATUS=$(xinput list-props "SynPS/2 Synaptics TouchPad" | grep "Device Enabled" | cut -f3)

if [ $TOUCHPAD_STATUS -eq 1 ]
then
    xinput disable "SynPS/2 Synaptics TouchPad"
else
    xinput enable "SynPS/2 Synaptics TouchPad"
fi
```

This crash is really concerning considering the fact that I need to be able to toggle my touchpad quite often as palm detection on GNU/Linux is very bad.

I haven't tried to reproduce the crash with a mouse but if it is necessary I could try when I have the time. Anyway I'm guessing it seems very likely that the same crash would happen when using a mouse as well.
Comment 1 Eyal Chojnowski 2019-04-11 10:25:23 CEST
I did some more tests and it appears the crash does not only affect xfce4-terminal but every VTE-based terminal emulators. I tried with sakura, guake and lxterminal and the exact same crash happens on all of them. I will open an new issue on the vte's repo today when I have some time.
Comment 2 Egmont Koblinger 2019-04-11 12:37:13 CEST
(VTE developer here)

I couldn't reproduce this problem, neither with xfce4-terminal nor with gnome-terminal.

Does it not occur with other terminal emulators (e.g. xterm), and other GTK apps (e.g. gedit)?

Do you have a stack trace?

What's your VTE version? If 0.56.0 then please upgrade to 0.56.1 – it fixes a crash which I thought might be relevant, but probably isn't. (Are you just moving the mouse when you press the hotkey, or are you selecting text / autoscrolling? If the latter then this bug might be relevant.)

I doubt it's a bug in VTE itself, as VTE doesn't care where the touchpad events are coming from, nor is notified / cares when a touchpad device appears or disappears. I'd suspect a GTK issue. But a stack trace would reveal much more.
Comment 3 Egmont Koblinger 2019-04-11 12:39:19 CEST
What happens if you eliminate the hotkey from the game? E.g. execute this:
    sleep 5; xinput disable "SynPS/2 Synaptics TouchPad"
Does it crash 5 seconds later?

---

What happens if you keep the hotkey, and add such a sleep to the beginning of your script? Does the crash occur as soon as you press the hotkey (that is, it's related to the hotkey itself, and not to the touchpad getting disabled), or does it occur 5 seconds later (at the time the touchpad is disabled)?
Comment 4 Igor editbugs 2019-04-11 15:14:58 CEST
Hi Eyal, thanks for the interesting report!

I wasn't able to reproduce the crash in a VM; haven't had a chance to try it on the real hardware yet.

It's very unlikely that the cause of the crash is xfce4-terminal (or vte, according to Egmont). I would think it's rather GTK or maybe the WM - the crash stack trace should be able to tell more.
Comment 5 Eyal Chojnowski 2019-04-26 12:33:39 CEST
Hi,

I'm sorry for the very late reply, I haven't had much free time.

So it turns out that yes, the problem is not VTE related. I thought I already tried it on gtk apps but the thing is I tried with the gtk+ version of lxappearance and couldn't reproduce the bug. So probably the bug is gtk3 related; I can effectively reproduce the bug with gedit.

Now I tried to put a sleep before the execution of the script by changing in my i3 config file:

`bindsym $mod+t exec --no-startup-id /home/noom/.config/i3/scripts/toggle_touchpad`

to

`bindsym $mod+t exec --no-startup-id sleep "0.1" && /home/noom/.config/i3/scripts/toggle_touchpad`

And now the bug isn't occurring at all anymore. The weird thing is that changing the sleep duration, I can find a range in which the bug will occure. The range being between 0 and ~0.06.

I'm not sure how I could get a stacktrace though, could you give me instructions if it is needed?
Comment 6 Igor editbugs 2019-04-26 14:24:10 CEST
Thanks for the update, Eyal! I'm closing this bug since it isn't related to xfce4-terminal.

Regarding the stack trace: assuming your system is using systemd, does `journalctl` show anything?
Comment 7 Eyal Chojnowski 2019-04-26 17:00:44 CEST
No problem. Here is the stack trace:

```
systemd-coredump[10692]: Process 10665 (gedit) of user 1000 dumped core.

Stack trace of thread 10665:
#0  0x00007f7675f10d55 n/a (libgdk-3.so.0)
#1  0x00007f7675f1b36d n/a (libgdk-3.so.0)
#2  0x00007f7675f1af03 n/a (libgdk-3.so.0)
#3  0x00007f7675ee3ea2 gdk_display_get_event (libgdk-3.so.0)
#4  0x00007f7675f1aaa4 n/a (libgdk-3.so.0)
#5  0x00007f76769327bf g_main_context_dispatch (libglib-2.0.so.0)
#6  0x00007f7676934739 n/a (libglib-2.0.so.0)
#7  0x00007f767693477e g_main_context_iteration (libglib-2.0.so.0)
#8  0x00007f767674cf5e g_application_run (libgio-2.0.so.0)
#9  0x00005636e9c720f0 main (gedit)
#10 0x00007f7676af1ce3 __libc_start_main (libc.so.6)
#11 0x00005636e9c721be _start (gedit)

Stack trace of thread 10669:
#0  0x00007f7676bbe0d1 __poll (libc.so.6)
#1  0x00007f7676934690 n/a (libglib-2.0.so.0)
#2  0x00007f76769356d2 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f7676708568 n/a (libgio-2.0.so.0)
#4  0x00007f767690fc21 n/a (libglib-2.0.so.0)
#5  0x00007f7676c9aa92 start_thread (libpthread.so.0)
#6  0x00007f7676bc8cd3 __clone (libc.so.6)

Stack trace of thread 10670:
#0  0x00007f7676bbe0d1 __poll (libc.so.6)
#1  0x00007f7676934690 n/a (libglib-2.0.so.0)
#2  0x00007f767693477e g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007f7670ca6bde n/a (libdconfsettings.so)
#4  0x00007f767690fc21 n/a (libglib-2.0.so.0)
#5  0x00007f7676c9aa92 start_thread (libpthread.so.0)
#6  0x00007f7676bc8cd3 __clone (libc.so.6)

Stack trace of thread 10671:
#0  0x00007f7676bc397d syscall (libc.so.6)
#1  0x00007f76768e3141 g_cond_wait_until (libglib-2.0.so.0)
#2  0x00007f76769642e3 n/a (libglib-2.0.so.0)
#3  0x00007f76769644e3 g_async_queue_timeout_pop (libglib-2.0.so.0)
#4  0x00007f7676908d6a n/a (libglib-2.0.so.0)
#5  0x00007f767690fc21 n/a (libglib-2.0.so.0)
#6  0x00007f7676c9aa92 start_thread (libpthread.so.0)
#7  0x00007f7676bc8cd3 __clone (libc.so.6)

Stack trace of thread 10668:
#0  0x00007f7676bbe0d1 __poll (libc.so.6)
#1  0x00007f7676934690 n/a (libglib-2.0.so.0)
#2  0x00007f767693477e g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007f76769347d2 n/a (libglib-2.0.so.0)
#4  0x00007f767690fc21 n/a (libglib-2.0.so.0)
#5  0x00007f7676c9aa92 start_thread (libpthread.so.0)
#6  0x00007f7676bc8cd3 __clone (libc.so.6)
```
Comment 8 Igor editbugs 2019-04-26 17:15:56 CEST
Yeah, looks like it crashes within GDK.
I'd suggest filing a bug here: https://gitlab.gnome.org/GNOME/gtk

Bug #15279

Reported by:
Eyal Chojnowski
Reported on: 2019-04-10
Last modified on: 2019-04-26

People

CC List:
2 users

Version

Version:
0.8.7.4

Attachments

Additional information