Bug 358919 - plasmashell crashes when external monitor is switched off and then on again
Summary: plasmashell crashes when external monitor is switched off and then on again
Status: RESOLVED DUPLICATE of bug 351777
Alias: None
Product: KScreen
Classification: Plasma
Component: libkscreen (show other bugs)
Version: 5.5.4
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: Sebastian Kügler
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-02-02 13:38 UTC by Stefan Radermacher
Modified: 2016-02-02 14:17 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Radermacher 2016-02-02 13:38:31 UTC
I use a two-monitor setup, my primary monitor is connected via Displayport at a resolution of 3840x2160, and the secondary monitor via HDMI at 1280x1024.

Installed software: KDE Frameworks 5.18.0, KDE Plasma 5.5.4, Qt 5.5.1 (with patch, see below), Nvidia proprietary driver 361.18

Symptom: when I turn off my primary monitor and later turn it back on again, plasmashell crashes and restarts.

Previously, this also happened when I woke up my PC after monitor power management shut them down. This was fixed by a patch for Qt 5.5.1 as detailed in this upstream bugtracker: https://bugreports.qt.io/browse/QTBUG-42985. On the freenode channel #kde it was suggested that the crash after turning off the monitor is probably a KScreen bug.

Reproducible: Always

Steps to Reproduce:
1. Turn main monitor off
2. Turn main monitor on

Actual Results:  
Plasmashell crashes, then restarts.

Expected Results:  
Plasmashell does not crash.

Here's a backtrace of the crash from DrKonqi:

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

Thread 9 (Thread 0x7f305de66700 (LWP 20492)):
#0  0x00007f306ba135bd in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f306f9b6ac2 in poll (__timeout=-1, __nfds=1, __fds=0x7f305de65d00) at /usr/include/bits/poll2.h:46
#2  _xcb_conn_wait (c=c@entry=0x9159d0, cond=cond@entry=0x915a10, vector=vector@entry=0x0, count=count@entry=0x0) at /var/tmp/portage/x11-libs/libxcb-1.11.1/work/libxcb-1.11.1/src/xcb_conn.c:459
#3  0x00007f306f9b872f in xcb_wait_for_event (c=0x9159d0) at /var/tmp/portage/x11-libs/libxcb-1.11.1/work/libxcb-1.11.1/src/xcb_in.c:693
#4  0x00007f305fdb93d9 in QXcbEventReader::run (this=0x921d80) at qxcbconnection.cpp:1264
#5  0x00007f306c0f30d2 in QThreadPrivate::start (arg=0x921d80) at thread/qthread_unix.cpp:331
#6  0x00007f306b224434 in start_thread (arg=0x7f305de66700) at pthread_create.c:334
#7  0x00007f306ba1c6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 8 (Thread 0x7f305693c700 (LWP 20504)):
#0  g_mutex_unlock (mutex=0x7f3050000990) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gthread-posix.c:1350
#1  0x00007f306787a4d0 in g_main_context_prepare (context=context@entry=0x7f3050000990, priority=priority@entry=0x7f305693bcb0) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3440
#2  0x00007f306787ae7b in g_main_context_iterate (context=context@entry=0x7f3050000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3820
#3  0x00007f306787b05c in g_main_context_iteration (context=0x7f3050000990, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3901
#4  0x00007f306c2e355b in QEventDispatcherGlib::processEvents (this=0x7f30500008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#5  0x00007f306c29553a in QEventLoop::exec (this=this@entry=0x7f305693bde0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f306c0eeab4 in QThread::exec (this=this@entry=0xa04b70) at thread/qthread.cpp:503
#7  0x00007f306e888675 in QQmlThreadPrivate::run (this=0xa04b70) at qml/ftw/qqmlthread.cpp:141
#8  0x00007f306c0f30d2 in QThreadPrivate::start (arg=0xa04b70) at thread/qthread_unix.cpp:331
#9  0x00007f306b224434 in start_thread (arg=0x7f305693c700) at pthread_create.c:334
#10 0x00007f306ba1c6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 7 (Thread 0x7f304b6ce700 (LWP 20505)):
#0  0x00007f306ba135bd in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f306787af4c in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f3044002e70, timeout=<optimized out>, context=0x7f3044000990) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:4135
#2  g_main_context_iterate (context=context@entry=0x7f3044000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3835
#3  0x00007f306787b05c in g_main_context_iteration (context=0x7f3044000990, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3901
#4  0x00007f306c2e355b in QEventDispatcherGlib::processEvents (this=0x7f30440008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#5  0x00007f306c29553a in QEventLoop::exec (this=this@entry=0x7f304b6cdde0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f306c0eeab4 in QThread::exec (this=this@entry=0xc56860) at thread/qthread.cpp:503
#7  0x00007f306e888675 in QQmlThreadPrivate::run (this=0xc56860) at qml/ftw/qqmlthread.cpp:141
#8  0x00007f306c0f30d2 in QThreadPrivate::start (arg=0xc56860) at thread/qthread_unix.cpp:331
#9  0x00007f306b224434 in start_thread (arg=0x7f304b6ce700) at pthread_create.c:334
#10 0x00007f306ba1c6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 6 (Thread 0x7f3049f1f700 (LWP 20506)):
#0  0x00007f306ba135bd in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f306787af4c in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f303c003070, timeout=<optimized out>, context=0x7f303c000990) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:4135
#2  g_main_context_iterate (context=context@entry=0x7f303c000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3835
#3  0x00007f306787b05c in g_main_context_iteration (context=0x7f303c000990, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3901
#4  0x00007f306c2e355b in QEventDispatcherGlib::processEvents (this=0x7f303c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#5  0x00007f306c29553a in QEventLoop::exec (this=this@entry=0x7f3049f1ede0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f306c0eeab4 in QThread::exec (this=this@entry=0xbb3cc0) at thread/qthread.cpp:503
#7  0x00007f306e888675 in QQmlThreadPrivate::run (this=0xbb3cc0) at qml/ftw/qqmlthread.cpp:141
#8  0x00007f306c0f30d2 in QThreadPrivate::start (arg=0xbb3cc0) at thread/qthread_unix.cpp:331
#9  0x00007f306b224434 in start_thread (arg=0x7f3049f1f700) at pthread_create.c:334
#10 0x00007f306ba1c6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7f3043fff700 (LWP 20507)):
#0  pthread_cond_wait () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f3070c431a4 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7f3070d2a680 <QTWTF::pageheap_memory>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#2  0x00007f3070c431e9 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#3  0x00007f306b224434 in start_thread (arg=0x7f3043fff700) at pthread_create.c:334
#4  0x00007f306ba1c6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f30418e6700 (LWP 20508)):
#0  0x00007f306ba135bd in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f306787af4c in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f2fb8003120, timeout=<optimized out>, context=0x7f2fb8000990) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:4135
#2  g_main_context_iterate (context=context@entry=0x7f2fb8000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3835
#3  0x00007f306787b05c in g_main_context_iteration (context=0x7f2fb8000990, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3901
#4  0x00007f306c2e355b in QEventDispatcherGlib::processEvents (this=0x7f2fb80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#5  0x00007f306c29553a in QEventLoop::exec (this=this@entry=0x7f30418e5d90, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f306c0eeab4 in QThread::exec (this=this@entry=0x117e8f0) at thread/qthread.cpp:503
#7  0x00007f306f20ef76 in QQuickPixmapReader::run (this=0x117e8f0) at util/qquickpixmapcache.cpp:760
#8  0x00007f306c0f30d2 in QThreadPrivate::start (arg=0x117e8f0) at thread/qthread_unix.cpp:331
#9  0x00007f306b224434 in start_thread (arg=0x7f30418e6700) at pthread_create.c:334
#10 0x00007f306ba1c6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f30410e5700 (LWP 20509)):
#0  pthread_cond_wait () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f306c0f376a in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x10fc2e0) at thread/qwaitcondition_unix.cpp:136
#2  QWaitCondition::wait (this=this@entry=0x11f9dd8, mutex=mutex@entry=0x11f9dd0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#3  0x00007f306f28371e in QSGRenderThreadEventQueue::takeEvent (wait=true, this=0x11f9dc8) at scenegraph/qsgthreadedrenderloop.cpp:224
#4  QSGRenderThread::processEventsAndWaitForMore (this=this@entry=0x11f9d50) at scenegraph/qsgthreadedrenderloop.cpp:657
#5  0x00007f306f283fa3 in QSGRenderThread::run (this=0x11f9d50) at scenegraph/qsgthreadedrenderloop.cpp:686
#6  0x00007f306c0f30d2 in QThreadPrivate::start (arg=0x11f9d50) at thread/qthread_unix.cpp:331
#7  0x00007f306b224434 in start_thread (arg=0x7f30410e5700) at pthread_create.c:334
#8  0x00007f306ba1c6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f2f9bf5b700 (LWP 20519)):
#0  pthread_cond_wait () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f306c0f376a in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x190a000) at thread/qwaitcondition_unix.cpp:136
#2  QWaitCondition::wait (this=this@entry=0x190a468, mutex=mutex@entry=0x190a460, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#3  0x00007f306f28371e in QSGRenderThreadEventQueue::takeEvent (wait=true, this=0x190a458) at scenegraph/qsgthreadedrenderloop.cpp:224
#4  QSGRenderThread::processEventsAndWaitForMore (this=this@entry=0x190a3e0) at scenegraph/qsgthreadedrenderloop.cpp:657
#5  0x00007f306f283fa3 in QSGRenderThread::run (this=0x190a3e0) at scenegraph/qsgthreadedrenderloop.cpp:686
#6  0x00007f306c0f30d2 in QThreadPrivate::start (arg=0x190a3e0) at thread/qthread_unix.cpp:331
#7  0x00007f306b224434 in start_thread (arg=0x7f2f9bf5b700) at pthread_create.c:334
#8  0x00007f306ba1c6dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f30712007c0 (LWP 20489)):
[KCrash Handler]
#6  Plasma::Applet::actions (this=this@entry=0x0) at /var/tmp/portage/kde-frameworks/plasma-5.18.0/work/plasma-framework-5.18.0/src/plasma/applet.cpp:575
#7  0x0000000000454a02 in ShellCorona::addOutput (this=this@entry=0x9ee760, output=...) at /var/tmp/portage/kde-plasma/plasma-workspace-5.5.4/work/plasma-workspace-5.5.4/shell/shellcorona.cpp:901
#8  0x0000000000454b8f in ShellCorona::outputEnabledChanged (this=0x9ee760) at /var/tmp/portage/kde-plasma/plasma-workspace-5.5.4/work/plasma-workspace-5.5.4/shell/shellcorona.cpp:795
#9  0x00007f306c2be217 in QtPrivate::QSlotObjectBase::call (a=0x7ffd6654c7c0, r=0x9ee760, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:124
#10 QMetaObject::activate (sender=0x9c0d80, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3698
#11 0x00007f30703bfe71 in KScreen::Output::apply (this=0x9c0d80, other=...) at /var/tmp/portage/kde-plasma/libkscreen-5.5.4/work/libkscreen-5.5.4/src/output.cpp:516
#12 0x00007f30703af805 in KScreen::Config::apply (this=this@entry=0xc80d00, other=...) at /var/tmp/portage/kde-plasma/libkscreen-5.5.4/work/libkscreen-5.5.4/src/config.cpp:343
#13 0x00007f30703b4f09 in KScreen::ConfigMonitor::Private::updateConfigs (this=this@entry=0xe71060, newConfig=...) at /var/tmp/portage/kde-plasma/libkscreen-5.5.4/work/libkscreen-5.5.4/src/configmonitor.cpp:174
#14 0x00007f30703b6afd in KScreen::ConfigMonitor::Private::edidReady (this=0xe71060, watcher=<optimized out>) at /var/tmp/portage/kde-plasma/libkscreen-5.5.4/work/libkscreen-5.5.4/src/configmonitor.cpp:159
#15 0x00007f306c2be217 in QtPrivate::QSlotObjectBase::call (a=0x7ffd6654cbb0, r=0xe71060, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:124
#16 QMetaObject::activate (sender=0x25c7140, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd6654cbb0) at kernel/qobject.cpp:3698
#17 0x00007f306c2beba7 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f3071378140 <QDBusPendingCallWatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd6654cbb0) at kernel/qobject.cpp:3578
#18 0x00007f307135d0ff in QDBusPendingCallWatcher::finished (this=<optimized out>, _t1=0x25c7140) at .moc/moc_qdbuspendingcall.cpp:148
#19 0x00007f307135e7d5 in QDBusPendingCallWatcherPrivate::_q_finished (this=<optimized out>) at qdbuspendingcall.cpp:488
#20 QDBusPendingCallWatcher::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qdbuspendingcall.cpp:80
#21 0x00007f306c2bf3b1 in QObject::event (this=0x25c7140, e=<optimized out>) at kernel/qobject.cpp:1239
#22 0x00007f306ccdb92c in QApplicationPrivate::notify_helper (this=this@entry=0x9091f0, receiver=receiver@entry=0x25c7140, e=e@entry=0x8fc5f0) at kernel/qapplication.cpp:3716
#23 0x00007f306cce0dae in QApplication::notify (this=0x7ffd6654d2a0, receiver=0x25c7140, e=0x8fc5f0) at kernel/qapplication.cpp:3499
#24 0x00007f306c29664d in QCoreApplication::notifyInternal (this=0x7ffd6654d2a0, receiver=0x25c7140, event=event@entry=0x8fc5f0) at kernel/qcoreapplication.cpp:965
#25 0x00007f306c2991d6 in QCoreApplication::sendEvent (event=0x8fc5f0, receiver=<optimized out>) at kernel/qcoreapplication.h:224
#26 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x8ff340) at kernel/qcoreapplication.cpp:1593
#27 0x00007f306c2996b8 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1451
#28 0x00007f306c2e34c3 in postEventSourceDispatch (s=0x94c140) at kernel/qeventdispatcher_glib.cpp:271
#29 0x00007f306787ad57 in g_main_dispatch (context=0x7f30580016f0) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3154
#30 g_main_context_dispatch (context=context@entry=0x7f30580016f0) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3769
#31 0x00007f306787afb0 in g_main_context_iterate (context=context@entry=0x7f30580016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3840
#32 0x00007f306787b05c in g_main_context_iteration (context=0x7f30580016f0, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.46.2-r1/work/glib-2.46.2/glib/gmain.c:3901
#33 0x00007f306c2e353f in QEventDispatcherGlib::processEvents (this=0x94e760, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#34 0x00007f306c29553a in QEventLoop::exec (this=this@entry=0x7ffd6654d140, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#35 0x00007f306c29c6dc in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1229
#36 0x00007f306c5b1f8c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1527
#37 0x00007f306ccd7d65 in QApplication::exec () at kernel/qapplication.cpp:2976
#38 0x000000000043228a in main (argc=4, argv=<optimized out>) at /var/tmp/portage/kde-plasma/plasma-workspace-5.5.4/work/plasma-workspace-5.5.4/shell/main.cpp:181
Comment 1 Aleix Pol 2016-02-02 14:17:37 UTC

*** This bug has been marked as a duplicate of bug 351777 ***