Bug 417741

Summary: Plasma on Wayland crashes when running with proprietary NVidia driver
Product: [Plasma] plasmashell Reporter: Yaroslav Sidlovsky <zawertun>
Component: generalAssignee: David Edmundson <kde>
Status: RESOLVED UPSTREAM    
Severity: crash CC: plasma-bugs
Priority: NOR Keywords: drkonqi
Version: 5.18.0   
Target Milestone: 1.0   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:

Description Yaroslav Sidlovsky 2020-02-16 10:28:33 UTC
Application: plasmashell (5.18.0)

Qt Version: 5.13.2
Frameworks Version: 5.67.0
Operating System: Linux 5.4.18-200.fc31.x86_64 x86_64
Windowing system: Wayland
Distribution: "Fedora release 31 (Thirty One)"

-- Information about the crash:
- What I was doing when the application crashed:
After I login to the KDE wayland I see plasma crashes after I interact with panel.
For example after clicking on the tray expand button (triangle).
Also I see visual glitches after tray panel is vanished.

I have nvidia driver version 440.59 installed & egl-wayland-1.1.4.

System information:
---
Operating System: Fedora 31
KDE Plasma Version: 5.18.0
KDE Frameworks Version: 5.67.0
Qt Version: 5.13.2
Kernel Version: 5.4.18-200.fc31.x86_64
OS Type: 64-bit
Processors: 4 × AMD FX(tm)-9590 Eight-Core Processor
Memory: 22,4 ГиБ

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f9facf5d800 (LWP 13922))]

Thread 8 (Thread 0x7f9f7211d700 (LWP 14291)):
#0  0x00007f9faa33fd45 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f9faaece8b3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#2  0x00007f9faaece941 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#3  0x00007f9facb514e9 in QSGRenderThread::processEventsAndWaitForMore() () at /lib64/libQt5Quick.so.5
#4  0x00007f9facb5178d in QSGRenderThread::run() () at /lib64/libQt5Quick.so.5
#5  0x00007f9faaec8d96 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#6  0x00007f9faa3394e2 in start_thread () at /lib64/libpthread.so.0
#7  0x00007f9faab396d3 in clone () at /lib64/libc.so.6

Thread 7 (Thread 0x7f9f7342f700 (LWP 14272)):
#0  0x00007f9faaec9383 in QMutex::unlock() () at /lib64/libQt5Core.so.5
#1  0x00007f9fab0cd732 in postEventSourcePrepare(_GSource*, int*) () at /lib64/libQt5Core.so.5
#2  0x00007f9fa9670d8a in g_main_context_prepare () at /lib64/libglib-2.0.so.0
#3  0x00007f9fa967173b in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#4  0x00007f9fa9671943 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#5  0x00007f9fab0cd843 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#6  0x00007f9fab0771db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#7  0x00007f9faaec7c45 in QThread::exec() () at /lib64/libQt5Core.so.5
#8  0x00007f9faaec8d96 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#9  0x00007f9faa3394e2 in start_thread () at /lib64/libpthread.so.0
#10 0x00007f9faab396d3 in clone () at /lib64/libc.so.6

Thread 6 (Thread 0x7f9f73e17700 (LWP 14268)):
#0  0x00007f9fa966f8f3 in g_source_ref () at /lib64/libglib-2.0.so.0
#1  0x00007f9fa966f9a1 in g_source_iter_next () at /lib64/libglib-2.0.so.0
#2  0x00007f9fa9670cc3 in g_main_context_prepare () at /lib64/libglib-2.0.so.0
#3  0x00007f9fa967173b in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#4  0x00007f9fa9671943 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#5  0x00007f9fab0cd843 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#6  0x00007f9fab0771db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#7  0x00007f9faaec7c45 in QThread::exec() () at /lib64/libQt5Core.so.5
#8  0x00007f9f74665d2c in KCupsConnection::run() () at /lib64/libkcupslib.so
#9  0x00007f9faaec8d96 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#10 0x00007f9faa3394e2 in start_thread () at /lib64/libpthread.so.0
#11 0x00007f9faab396d3 in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f9f89588700 (LWP 14179)):
#0  0x00007f9faa33fd45 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f9faaece8b3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /lib64/libQt5Core.so.5
#2  0x00007f9faaece941 in QWaitCondition::wait(QMutex*, unsigned long) () at /lib64/libQt5Core.so.5
#3  0x00007f9facb514e9 in QSGRenderThread::processEventsAndWaitForMore() () at /lib64/libQt5Quick.so.5
#4  0x00007f9facb5178d in QSGRenderThread::run() () at /lib64/libQt5Quick.so.5
#5  0x00007f9faaec8d96 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#6  0x00007f9faa3394e2 in start_thread () at /lib64/libpthread.so.0
#7  0x00007f9faab396d3 in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f9f8a8bf700 (LWP 14143)):
#0  0x00007f9faab2a44c in read () at /lib64/libc.so.6
#1  0x00007f9fa96b953f in g_wakeup_acknowledge () at /lib64/libglib-2.0.so.0
#2  0x00007f9fa9671357 in g_main_context_check () at /lib64/libglib-2.0.so.0
#3  0x00007f9fa96717b2 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#4  0x00007f9fa9671943 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#5  0x00007f9fab0cd843 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#6  0x00007f9fab0771db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#7  0x00007f9faaec7c45 in QThread::exec() () at /lib64/libQt5Core.so.5
#8  0x00007f9facac60da in QQuickPixmapReader::run() () at /lib64/libQt5Quick.so.5
#9  0x00007f9faaec8d96 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#10 0x00007f9faa3394e2 in start_thread () at /lib64/libpthread.so.0
#11 0x00007f9faab396d3 in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f9f93fff700 (LWP 14025)):
#0  0x00007f9faaec8335 in QThreadData::current(bool) () at /lib64/libQt5Core.so.5
#1  0x00007f9fab0cd6fe in postEventSourcePrepare(_GSource*, int*) () at /lib64/libQt5Core.so.5
#2  0x00007f9fa9671269 in g_main_context_check () at /lib64/libglib-2.0.so.0
#3  0x00007f9fa96717b2 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#4  0x00007f9fa9671943 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#5  0x00007f9fab0cd843 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#6  0x00007f9fab0771db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#7  0x00007f9faaec7c45 in QThread::exec() () at /lib64/libQt5Core.so.5
#8  0x00007f9fac7d0399 in QQmlThreadPrivate::run() () at /lib64/libQt5Qml.so.5
#9  0x00007f9faaec8d96 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#10 0x00007f9faa3394e2 in start_thread () at /lib64/libpthread.so.0
#11 0x00007f9faab396d3 in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f9f9993f700 (LWP 13937)):
#0  0x00007f9faab2ea6f in poll () at /lib64/libc.so.6
#1  0x00007f9fa967180e in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#2  0x00007f9fa9671943 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3  0x00007f9fab0cd843 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#4  0x00007f9fab0771db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#5  0x00007f9faaec7c45 in QThread::exec() () at /lib64/libQt5Core.so.5
#6  0x00007f9fac057f6a in QDBusConnectionManager::run() () at /lib64/libQt5DBus.so.5
#7  0x00007f9faaec8d96 in QThreadPrivate::start(void*) () at /lib64/libQt5Core.so.5
#8  0x00007f9faa3394e2 in start_thread () at /lib64/libpthread.so.0
#9  0x00007f9faab396d3 in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f9facf5d800 (LWP 13922)):
[KCrash Handler]
#6  0x0000557e9c6ccc60 in  ()
#7  0x00007f9f932f00b0 in wlEglSetErrorCallback (data=0x557e9c6cd6b0, error=error@entry=12301, file=file@entry=0x7f9f932f15f5 "../src/wayland-eglsurface.c", line=line@entry=1110) at ../src/wayland-eglutils.c:154
#8  0x00007f9f932eea4a in wlEglDestroySurface (dpy=0x557e9c9a1ce0, eglSurface=<optimized out>) at ../src/wayland-eglsurface.c:1110
#9  0x00007f9f932eec70 in destroy_callback (data=0x7f9f580055d0) at ../src/wayland-eglsurface.c:1186
#10 0x00007f9f932f9207 in wl_egl_window_destroy (egl_window=0x7f9f58005580) at egl/wayland-egl.c:92
#11 0x00007f9f93322bdc in QtWaylandClient::QWaylandEglWindow::invalidateSurface() () at /usr/lib64/qt5/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so
#12 0x00007f9fab463814 in QWindowPrivate::setVisible(bool) () at /lib64/libQt5Gui.so.5
#13 0x00007f9fab462efc in QWindowPrivate::destroy() () at /lib64/libQt5Gui.so.5
#14 0x00007f9fab463067 in QWindow::~QWindow() () at /lib64/libQt5Gui.so.5
#15 0x00007f9facbaa384 in QQuickWindow::~QQuickWindow() () at /lib64/libQt5Quick.so.5
#16 0x00007f9f90cd4ef1 in QQmlPrivate::QQmlElement<PlasmaQuick::Dialog>::~QQmlElement() () at /usr/lib64/qt5/qml/org/kde/plasma/core/libcorebindingsplugin.so
#17 0x00007f9fab0a35c4 in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#18 0x00007f9fab463c1a in QWindow::event(QEvent*) () at /lib64/libQt5Gui.so.5
#19 0x00007f9facbb4fe9 in QQuickWindow::event(QEvent*) () at /lib64/libQt5Quick.so.5
#20 0x00007f9fad3fd7cb in PlasmaQuick::Dialog::event(QEvent*) () at /lib64/libKF5PlasmaQuick.so.5
#21 0x00007f9faba4fab6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#22 0x00007f9faba59150 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#23 0x00007f9fab0783e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#24 0x00007f9fab07b42b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5
#25 0x00007f9fab0cda97 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#26 0x00007f9fa9671510 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#27 0x00007f9fa96718a0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#28 0x00007f9fa9671943 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#29 0x00007f9fab0cd825 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#30 0x00007f9fab0771db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#31 0x00007f9f7343d187 in KScreen::WaylandConfig::WaylandConfig(QObject*) () at /usr/lib64/qt5/plugins/kf5/kscreen/KSC_KWayland.so
#32 0x00007f9f7343bd72 in KScreen::WaylandBackend::WaylandBackend() () at /usr/lib64/qt5/plugins/kf5/kscreen/KSC_KWayland.so
#33 0x00007f9f73437865 in qt_plugin_instance () at /usr/lib64/qt5/plugins/kf5/kscreen/KSC_KWayland.so
#34 0x00007f9fab063e53 in QPluginLoader::instance() () at /lib64/libQt5Core.so.5
#35 0x00007f9f7a00c1b4 in KScreen::BackendManager::loadBackendPlugin(QPluginLoader*, QString const&, QMap<QString, QVariant> const&) () at /lib64/libKF5Screen.so.7
#36 0x00007f9f7a00c85c in KScreen::BackendManager::loadBackendInProcess(QString const&) () at /lib64/libKF5Screen.so.7
#37 0x00007f9f7a01830b in KScreen::ConfigOperationPrivate::loadBackend() () at /lib64/libKF5Screen.so.7
#38 0x00007f9f7a019063 in KScreen::GetConfigOperation::start() () at /lib64/libKF5Screen.so.7
#39 0x00007f9fab0a379a in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#40 0x00007f9faba4fab6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#41 0x00007f9faba59150 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#42 0x00007f9fab0783e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#43 0x00007f9fab07b42b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5
#44 0x00007f9fab0cda97 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#45 0x00007f9fa9671510 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#46 0x00007f9fa96718a0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#47 0x00007f9fa9671943 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#48 0x00007f9fab0cd825 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#49 0x00007f9fab0771db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#50 0x00007f9fab07f0b6 in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#51 0x0000557e9aff3f2f in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-5.18.0-3.fc31.x86_64/shell/main.cpp:228
[Inferior 1 (process 13922) detached]

Reported using DrKonqi
Comment 1 Yaroslav Sidlovsky 2020-02-16 10:34:21 UTC
Video of the bug: https://youtu.be/zUscXeA5uf8

Maybe I need to report this bug directly to the egl-wayland project?
Comment 2 David Edmundson 2020-02-16 15:30:17 UTC
Fixed in newer Qt