I am not sure if this is Artix related or upstream related:
I have a Lenovo m14t monitor with multitouch and stylus. It has a wacom tablet, and the stylus is an active one with battery, pressure sensitivity and two buttons: One "stylus button" and the other turns it into an eraser.
When I use it under Xorg with the wacom driver from the xf86-input-wacom project, any Qt5 based application I tried so far crashes with a Segmentation fault as soon as I touch the touchscreen with my finger (it does not so on stylus input).
This tried for the following software:
- marble-qt, version 2.2.20
- kate, version 21.08.2
- krusader, version 2.7.2
- dolphin, version 21.08.2
- digikam, version 7.3.01
- qt5ct, version 1.5
Underlying qt5-base libraries are version 5.15.2+kde+r237, from Artix Linux; see below.
As an example, here for marble-qt a gdb run:
Start it with gdb marble-qt, input run on gdb's command line, waiting until the programme is up, produces the following output:
Starting program: /usr/bin/marble-qt
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7fffda7e5640 (LWP 10845)]
[New Thread 0x7fffc8151640 (LWP 10846)]
[New Thread 0x7fffbffff640 (LWP 10847)]
[New Thread 0x7fffb3fff640 (LWP 10848)]
[New Thread 0x7fffa7fff640 (LWP 10849)]
[New Thread 0x7fff9bfff640 (LWP 10850)]
[Thread 0x7fff9bfff640 (LWP 10850) exited]
[New Thread 0x7fff9bfff640 (LWP 10851)]
[Detaching after fork from child process 10852]
[Detaching after fork from child process 10853]
[Detaching after fork from child process 10854]
[New Thread 0x7fff8ffff640 (LWP 10857)]
[New Thread 0x7fff83fff640 (LWP 10858)]
[New Thread 0x7fff77fff640 (LWP 10859)]
[New Thread 0x7fff6bfff640 (LWP 10860)]
[New Thread 0x7fff5ffff640 (LWP 10861)]
[New Thread 0x7fff5bffe640 (LWP 10862)]
[New Thread 0x7fff3fffd640 (LWP 10865)]
[New Thread 0x7fff47fff640 (LWP 10863)]
[New Thread 0x7fff43ffe640 (LWP 10864)]
[New Thread 0x7fff37ffb640 (LWP 10867)]
[New Thread 0x7fff3bffc640 (LWP 10866)]
[New Thread 0x7fff23fff640 (LWP 10868)]
[New Thread 0x7fff17fff640 (LWP 10869)]
[New Thread 0x7fff03fff640 (LWP 10870)]
[Thread 0x7fff03fff640 (LWP 10870) exited]
[New Thread 0x7fff03fff640 (LWP 10871)]
[Thread 0x7fff03fff640 (LWP 10871) exited]
[New Thread 0x7fff03fff640 (LWP 10872)]
[New Thread 0x7ffeffffe640 (LWP 10873)]
[New Thread 0x7ffef3fff640 (LWP 10874)]
[Detaching after fork from child process 10875]
[New Thread 0x7ffee7fff640 (LWP 10876)]
[New Thread 0x7ffedbfff640 (LWP 10881)]
[New Thread 0x7ffecffff640 (LWP 10885)]
[New Thread 0x7ffec3fff640 (LWP 10894)]
[New Thread 0x7ffeb7fff640 (LWP 10909)]
[New Thread 0x7ffeabfff640 (LWP 10910)]
[New Thread 0x7ffe9ffff640 (LWP 10911)]
[New Thread 0x7ffe93fff640 (LWP 10912)]
[New Thread 0x7ffe8fffe640 (LWP 10913)]
[Thread 0x7ffe9ffff640 (LWP 10911) exited]
[New Thread 0x7ffe9ffff640 (LWP 10914)]
[New Thread 0x7ffe83fff640 (LWP 10915)]
[Thread 0x7ffe93fff640 (LWP 10912) exited]
[New Thread 0x7ffe93fff640 (LWP 10916)]
[New Thread 0x7ffe77fff640 (LWP 10917)]
[Thread 0x7ffe9ffff640 (LWP 10914) exited]
[New Thread 0x7ffe9ffff640 (LWP 10918)]
[Thread 0x7ffe93fff640 (LWP 10916) exited]
[New Thread 0x7ffe73ffe640 (LWP 10919)]
[New Thread 0x7ffe93fff640 (LWP 10920)]
[Thread 0x7ffe73ffe640 (LWP 10919) exited]
[New Thread 0x7ffe73ffe640 (LWP 10921)]
[Thread 0x7ffe93fff640 (LWP 10920) exited]
[Thread 0x7ffe73ffe640 (LWP 10921) exited]
[New Thread 0x7ffe73ffe640 (LWP 10925)]
[Thread 0x7ffeb7fff640 (LWP 10909) exited]
[New Thread 0x7ffeb7fff640 (LWP 10937)]
[New Thread 0x7ffe93fff640 (LWP 10938)]
[New Thread 0x7ffe6fffd640 (LWP 10939)]
[New Thread 0x7ffe6bffc640 (LWP 10940)]
[New Thread 0x7ffe67ffb640 (LWP 10941)]
[New Thread 0x7ffe63ffa640 (LWP 10942)]
[New Thread 0x7ffe5fff9640 (LWP 10943)]
[Thread 0x7ffe9ffff640 (LWP 10918) exited]
[Thread 0x7ffe83fff640 (LWP 10915) exited]
[Thread 0x7ffe8fffe640 (LWP 10913) exited]
[Thread 0x7ffe77fff640 (LWP 10917) exited]
[Thread 0x7fff3bffc640 (LWP 10866) exited]
[Thread 0x7fff5bffe640 (LWP 10862) exited]
[Thread 0x7fff5ffff640 (LWP 10861) exited]
[Thread 0x7fff43ffe640 (LWP 10864) exited]
[New Thread 0x7fff43ffe640 (LWP 11056)]
[Thread 0x7fff43ffe640 (LWP 11056) exited]
Now, when I touch the programme with my finger on the touchscreen, the following output comes:
Thread 1 "marble-qt" received signal SIGSEGV, Segmentation fault.
0x00007fffda91ab27 in QXcbConnection::xi2ProcessTouch(void*, QXcbWindow*) () from /usr/lib/libQt5XcbQpa.so.5
Then, in the gdb command line, typing bt for "backtrace", yields the following:
#0 0x00007fffda91ab27 in QXcbConnection::xi2ProcessTouch(void*, QXcbWindow*) () at /usr/lib/libQt5XcbQpa.so.5
#1 0x00007fffda8e6dcf in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () at /usr/lib/libQt5XcbQpa.so.5
#2 0x00007fffda8e82d1 in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5XcbQpa.so.5
#3 0x00007fffda90f7f8 in () at /usr/lib/libQt5XcbQpa.so.5
#4 0x00007ffff4e6909c in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#5 0x00007ffff4ebe7f9 in () at /usr/lib/libglib-2.0.so.0
#6 0x00007ffff4e666e5 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#7 0x00007ffff6661a8a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#8 0x00007ffff6606a1b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#9 0x00007ffff660f208 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#10 0x000055555556a090 in ()
#11 0x00007ffff5f6eb25 in __libc_start_main () at /usr/lib/libc.so.6
#12 0x000055555556ac8e in ()
Typing cont for "continue" in gdb's command line then yields the following (leading to quitting of the software):
Continuing.
Couldn't get registers: No such process.
Couldn't get registers: No such process.
(gdb) [Thread 0x7ffe5fff9640 (LWP 10943) exited]
[Thread 0x7ffe63ffa640 (LWP 10942) exited]
[Thread 0x7ffe67ffb640 (LWP 10941) exited]
[Thread 0x7ffe6bffc640 (LWP 10940) exited]
[Thread 0x7ffe6fffd640 (LWP 10939) exited]
[Thread 0x7ffe93fff640 (LWP 10938) exited]
[Thread 0x7ffeb7fff640 (LWP 10937) exited]
[Thread 0x7ffe73ffe640 (LWP 10925) exited]
[Thread 0x7ffeabfff640 (LWP 10910) exited]
[Thread 0x7ffec3fff640 (LWP 10894) exited]
[Thread 0x7ffecffff640 (LWP 10885) exited]
[Thread 0x7ffedbfff640 (LWP 10881) exited]
[Thread 0x7ffee7fff640 (LWP 10876) exited]
[Thread 0x7ffef3fff640 (LWP 10874) exited]
[Thread 0x7ffeffffe640 (LWP 10873) exited]
[Thread 0x7fff03fff640 (LWP 10872) exited]
[Thread 0x7fff17fff640 (LWP 10869) exited]
[Thread 0x7fff23fff640 (LWP 10868) exited]
[Thread 0x7fff37ffb640 (LWP 10867) exited]
[Thread 0x7fff3fffd640 (LWP 10865) exited]
[Thread 0x7fff47fff640 (LWP 10863) exited]
[Thread 0x7fff6bfff640 (LWP 10860) exited]
[Thread 0x7fff77fff640 (LWP 10859) exited]
[Thread 0x7fff83fff640 (LWP 10858) exited]
[Thread 0x7fff8ffff640 (LWP 10857) exited]
[Thread 0x7fff9bfff640 (LWP 10851) exited]
[Thread 0x7fffa7fff640 (LWP 10849) exited]
[Thread 0x7fffb3fff640 (LWP 10848) exited]
[Thread 0x7fffc8151640 (LWP 10846) exited]
[Thread 0x7fffda7e5640 (LWP 10845) exited]
[Thread 0x7fffdb1d8140 (LWP 10838) exited]
Then when I want to quit gdb it still prints the warning
A debugging session is active.
Inferior 1 [process 10838] will be killed.
Quit anyway? (y or n)
but the only useful to do I seem to find is to just quit.
System information:
- Operating system: Artix Linux with OpenRC,
- Version of marble-qt:
- 2.2.20
- Using Marble Library version 21.04
- Users Qt version 5.15.2
- /usr/lib/libQt5XcbQpa.so.5 and /usr/lib/libQt5Core.so.5 belong to package qt5-base, version 5.15.2+kde+r237-1, from the Artix Linux 'world' repository.
- Kernel version: 5.14-pf5,
- Xorg -version: X.Org X Server 1.20.13
- Version of package xf86-input-wacom: 0.40.0-1.1
- lsusb:
Bus 002 Device 002: ID 0bda:0316 Realtek Semiconductor Corp. Card Reader
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 127: ID 2d1f:524c Wacom Taiwan Information Co. Ltd. Pen and multitouch sensor
Bus 001 Device 124: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 001 Device 005: ID 8087:0a2a Intel Corp. Bluetooth wireless interface
Bus 001 Device 003: ID 6080:8061 AMR-4630-XXX-0- 0-1023 USB KEYBOARD
Bus 001 Device 108: ID 04b3:301e IBM Corp. IBM USB Travel Keyboard with Ultra Nav
Bus 001 Device 107: ID 04b3:3016 IBM Corp. UltraNav Keyboard Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- lsusb -vv -d 2d1f:524c: See here,
- xinput --list:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ AMR-4630-XXX-0- 0-1023 USB KEYBOARD Mouse id=13 [slave pointer (2)]
⎜ ↳ Lite-On Tech IBM USB Travel Keyboard with Ultra Nav Mouse id=9 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Stylus stylus id=16 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Stylus eraser id=17 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor touch id=18 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor UNKNOWN touch id=19 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor UNKNOWN pad id=23 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor touch id=24 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ AMR-4630-XXX-0- 0-1023 USB KEYBOARD id=12 [slave keyboard (3)]
↳ AMR-4630-XXX-0- 0-1023 USB KEYBOARD System Control id=14 [slave keyboard (3)]
↳ AMR-4630-XXX-0- 0-1023 USB KEYBOARD Consumer Control id=15 [slave keyboard (3)]
↳ Intel HID events id=20 [slave keyboard (3)]
↳ Intel HID 5 button array id=21 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=22 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with Ultra Nav id=8 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with Ultra Nav Consumer Control id=10 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with Ultra Nav System Control id=11 [slave keyboard (3)]
- xinput --list --long for the six wacom devices: See here.
- Here: Xorg.1.log) is a logfile from a fresh start of Xorg with X -retro -logverbose 6 :1, with doing some touch, then some stylus, then some touch, and then terminating the server with <CTRL>+<ALT>+<Backspace>.
- Using touchscreen or stylus does not produce further log messages with verbosity 6, except (EE) Wacom Co.,Ltd. Pen and multitouch sensor Stylus eraser: usbParse: Ignoring event from invalid serial 0 when removing the pen.