QML apps crash if ran on devices without hardware acceleration
Created by: PureTryOut
Trying to run any QML apps on a device without hardware acceleration (so dri-swrast
installed and running on the framebuffer) causes the specific app to error in a "Segmentation fault".
For example qmltermwidget
(the qmlkonsole
binary):
localhost:~$ qmlkonsole
QObject::connect: No such slot Konsole::TerminalDisplay::close() in /home/pmos/build/src/qmltermwidget-fb525b7185acf3b91ba58051c337ae33294a7da7/lib/Session.cpp:214
loadAllColorSchemes
Using color-schemes: ":/color-schemes/"
Using color-schemes: ":/color-schemes/"
qml: QSize(37, 127)
Session::run() - program: "/bin/ash"
Session::run() - arguments: ("")
started!
Segmentation fault
If ran with QT_QUICK_BACKEND=software
:
localhost:~$ QT_QUICK_BACKEND=software qmlkonsole
QObject::connect: No such slot Konsole::TerminalDisplay::close() in /home/pmos/build/src/qmltermwidget-fb525b7185acf3b91ba58051c337ae33294a7da7/lib/Session.cpp:214
loadAllColorSchemes
Using color-schemes: ":/color-schemes/"
Using color-schemes: ":/color-schemes/"
qml: QSize(37, 127)
Session::run() - program: "/bin/ash"
Session::run() - arguments: ("")
started!
qml: QSize(86, 143)
gdb output seemed useless, but I'll post it for reference anyway:
(gdb) r
Starting program: /usr/bin/qmlkonsole
[New LWP 12793]
[New LWP 12881]
[New LWP 12882]
[New LWP 12884]
QObject::connect: No such slot Konsole::TerminalDisplay::close() in /home/pmos/build/src/qmltermwidget-fb525b7185acf3b91ba58051c337ae33294a7da7/lib/Session.cpp:214
loadAllColorSchemes
Using color-schemes: ":/color-schemes/"
Using color-schemes: ":/color-schemes/"
qml: QSize(37, 127)
Session::run() - program: "/bin/ash"
Session::run() - arguments: ("")
CRASHED! result: -1
qml: QSize(86, 143)
[New LWP 14705]
Thread 6 "QSGRenderThread" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 14705]
0xb13ed434 in ?? () from /usr/lib/libLLVM-5.0.so
(gdb) bt
#0 0xb13ed434 in ?? () from /usr/lib/libLLVM-5.0.so
#1 0xb13ed508 in ?? () from /usr/lib/libLLVM-5.0.so
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Also the strace log (too long to post here): https://bpaste.net/show/b6bc44f0fd92
I'm not exactly sure what to do here. We can't start running every app with QT_QUICK_BACKEND=software
... Doing that with plasma-nm and plasma-pa (and thus the whole Plasma shell) causes it to become completely unresponsive.
Possibly related to #1022 (closed)?