Bug 392610

Summary: Unable to start after installing (a new version of) nvidia propietary driver
Product: [Applications] systemsettings Reporter: Sefa Eyeoglu <contact>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED UPSTREAM    
Severity: crash CC: kde
Priority: NOR    
Version: 5.12.4   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Sefa Eyeoglu 2018-04-01 16:35:23 UTC
After installing nvidia propietary drivers, several applications do not work until reboot. System settings crashes on startup if Sidebar View is enabled, kms-greeter crashes.


Stack trace:
Application: System Settings (systemsettings5), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f259ae78900 (LWP 30303))]

Thread 4 (Thread 0x7f25698d6700 (LWP 30308)):
#0  0x00007f25905bda94 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f25905792ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f259057949c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f25972ae5cb in QEventDispatcherGlib::processEvents (this=0x7f25640008e0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f259725564a in QEventLoop::exec (this=this@entry=0x7f25698d5ca0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#5  0x00007f2597075554 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:522
#6  0x00007f2594bb3a35 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#7  0x00007f259707a6eb in QThreadPrivate::start (arg=0x26c3e70) at thread/qthread_unix.cpp:376
#8  0x00007f2592b5e6ba in start_thread (arg=0x7f25698d6700) at pthread_create.c:333
#9  0x00007f259698741d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f257203a700 (LWP 30307)):
#0  0x00007f259697b74d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f259057938c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f259057949c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f25972ae5cb in QEventDispatcherGlib::processEvents (this=0x7f256c0008e0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f259725564a in QEventLoop::exec (this=this@entry=0x7f2572039ca0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#5  0x00007f2597075554 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:522
#6  0x00007f2594bb3a35 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#7  0x00007f259707a6eb in QThreadPrivate::start (arg=0x22dca30) at thread/qthread_unix.cpp:376
#8  0x00007f2592b5e6ba in start_thread (arg=0x7f257203a700) at pthread_create.c:333
#9  0x00007f259698741d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f25798b0700 (LWP 30305)):
#0  0x00007f25905bda79 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f2590578f16 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f25905793f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f259057949c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f25972ae5cb in QEventDispatcherGlib::processEvents (this=0x7f25740008e0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f259725564a in QEventLoop::exec (this=this@entry=0x7f25798afc90, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#6  0x00007f2597075554 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:522
#7  0x00007f2598b8e2c5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#8  0x00007f259707a6eb in QThreadPrivate::start (arg=0x7f2598e02d60) at thread/qthread_unix.cpp:376
#9  0x00007f2592b5e6ba in start_thread (arg=0x7f25798b0700) at pthread_create.c:333
#10 0x00007f259698741d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f259ae78900 (LWP 30303)):
[KCrash Handler]
#6  0x00007f25968b5428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#7  0x00007f25968b702a in __GI_abort () at abort.c:89
#8  0x00007f2597064311 in qt_message_fatal (context=..., message=<synthetic pointer>) at global/qlogging.cpp:1710
#9  QMessageLogger::fatal (this=this@entry=0x7fff64eb3760, msg=msg@entry=0x7f25957778ef "%s") at global/qlogging.cpp:816
#10 0x00007f2595773726 in QQuickWidgetPrivate::handleContextCreationFailure (this=this@entry=0x22db390, format=..., isEs=isEs@entry=false) at qquickwidget.cpp:843
#11 0x00007f2595773a8a in QQuickWidgetPrivate::createContext (this=this@entry=0x22db390) at qquickwidget.cpp:874
#12 0x00007f2595775e56 in QQuickWidget::resizeEvent (this=0x22db030, e=<optimized out>) at qquickwidget.cpp:1209
#13 0x00007f259826a9be in QWidget::event (this=this@entry=0x22db030, event=event@entry=0x7fff64eb3bd0) at kernel/qwidget.cpp:8981
#14 0x00007f25957767fb in QQuickWidget::event (this=0x22db030, e=0x7fff64eb3bd0) at qquickwidget.cpp:1468
#15 0x00007f259822aacc in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x22db030, e=0x7fff64eb3bd0) at kernel/qapplication.cpp:3732
#16 0x00007f2598232417 in QApplication::notify (this=0x7fff64eb47a0, receiver=0x22db030, e=0x7fff64eb3bd0) at kernel/qapplication.cpp:3491
#17 0x00007f25972573c8 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x22db030, event=event@entry=0x7fff64eb3bd0) at kernel/qcoreapplication.cpp:1044
#18 0x00007f25982629b2 in QCoreApplication::sendEvent (event=0x7fff64eb3bd0, receiver=0x22db030) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#19 QWidgetPrivate::sendPendingMoveAndResizeEvents (this=this@entry=0x22db390, recursive=recursive@entry=false, disableUpdates=<optimized out>, disableUpdates@entry=false) at kernel/qwidget.cpp:7845
#20 0x00007f25982667a3 in QWidgetPrivate::show_helper (this=this@entry=0x22db390) at kernel/qwidget.cpp:7896
#21 0x00007f2598269aad in QWidget::setVisible (this=0x22db030, visible=<optimized out>) at kernel/qwidget.cpp:8251
#22 0x00007f2598266738 in QWidgetPrivate::showChildren (this=this@entry=0x22b8a80, spontaneous=spontaneous@entry=false) at kernel/qwidget.cpp:8334
#23 0x00007f25982667bf in QWidgetPrivate::show_helper (this=this@entry=0x22b8a80) at kernel/qwidget.cpp:7902
#24 0x00007f2598269aad in QWidget::setVisible (this=0x22b8a40, visible=<optimized out>) at kernel/qwidget.cpp:8251
#25 0x00007f259824d557 in QStackedLayout::setCurrentIndex (this=0x1f259c0, index=0) at kernel/qstackedlayout.cpp:321
#26 0x00007f259824dc2a in QStackedLayout::insertWidget (this=0x1f259c0, index=0, widget=0x22b8a40) at kernel/qstackedlayout.cpp:231
#27 0x00007f259824dc49 in QStackedLayout::addWidget (this=<optimized out>, widget=<optimized out>) at kernel/qstackedlayout.cpp:203
#28 0x00007f25983d8c00 in QStackedWidget::addWidget (this=<optimized out>, widget=<optimized out>) at widgets/qstackedwidget.cpp:161
#29 0x000000000040e321 in SettingsBase::changePlugin (this=this@entry=0x1f08320) at /workspace/build/app/SettingsBase.cpp:332
#30 0x000000000040fa45 in SettingsBase::initApplication (this=<optimized out>) at /workspace/build/app/SettingsBase.cpp:125
#31 0x00007f2597290de6 in QtPrivate::QSlotObjectBase::call (a=0x7fff64eb4150, r=<optimized out>, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:378
#32 QSingleShotTimer::timerEvent (this=0x21f7000) at kernel/qtimer.cpp:318
#33 0x00007f2597285483 in QObject::event (this=0x21f7000, e=<optimized out>) at kernel/qobject.cpp:1268
#34 0x00007f259822aacc in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x21f7000, e=0x7fff64eb4410) at kernel/qapplication.cpp:3732
#35 0x00007f2598232417 in QApplication::notify (this=0x7fff64eb47a0, receiver=0x21f7000, e=0x7fff64eb4410) at kernel/qapplication.cpp:3491
#36 0x00007f25972573c8 in QCoreApplication::notifyInternal2 (receiver=0x21f7000, event=event@entry=0x7fff64eb4410) at kernel/qcoreapplication.cpp:1044
#37 0x00007f25972ad97e in QCoreApplication::sendEvent (event=0x7fff64eb4410, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#38 QTimerInfoList::activateTimers (this=0x1c2f3c0) at kernel/qtimerinfo_unix.cpp:643
#39 0x00007f25972ae201 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:182
#40 0x00007f2590579197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007f25905793f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007f259057949c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007f25972ae5af in QEventDispatcherGlib::processEvents (this=this@entry=0x1c18fe0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#44 0x00007f25891571a1 in QPAEventDispatcherGlib::processEvents (this=0x1c18fe0, flags=...) at qeventdispatcher_glib.cpp:69
#45 0x00007f259725564a in QEventLoop::exec (this=this@entry=0x7fff64eb4680, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#46 0x00007f259725e854 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1332
#47 0x00007f2597a7a83c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1687
#48 0x00007f259822aa25 in QApplication::exec () at kernel/qapplication.cpp:2917
#49 0x000000000040b6fe in main (argc=1, argv=<optimized out>) at /workspace/build/app/main.cpp:67
Comment 1 David Edmundson 2018-04-04 23:23:32 UTC
>#10 0x00007f2595773726 in QQuickWidgetPrivate::handleContextCreationFailure (this=this@entry=0x22db390, format=..., isEs=isEs@entry=false) at qquickwidget.cpp:843

Your drivers are broke.
Comment 2 Sefa Eyeoglu 2018-04-04 23:28:14 UTC
I guess that's expected. 
After installing a new version of the driver it crashes. This issue should be solved by implementing a fallback, so systemsettings can start with broken drivers.
Comment 3 Christoph Feck 2018-04-05 11:40:26 UTC
The fallback already is implemented in Qt since Qt 5.4, see http://blog.qt.io/blog/2015/01/22/introducing-the-qt-quick-2d-renderer/

The problem here is that the NVIDIA driver announces that it supports OpenGL, but then fails to provide a hardware context because of the version mismatch between the driver and its kernel module. Only a reboot can resolve it, or a fix from NVIDIA checking the version mismatch before reporting presence of the OpenGL support.
Comment 4 David Edmundson 2018-04-05 13:48:09 UTC
@cfeck see D7934 and D11722 on phab