Bug 343482 - Crash when unplugging screen
Summary: Crash when unplugging screen
Status: RESOLVED FIXED
Alias: None
Product: KScreen
Classification: Plasma
Component: libkscreen (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Daniel Vrátil
URL:
Keywords:
: 344113 344323 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-01-28 21:44 UTC by Elias Probst
Modified: 2015-03-05 18:55 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.2.1
Sentry Crash Report:


Attachments
Backtrace of plasmashell crash (115.37 KB, text/plain)
2015-01-28 21:44 UTC, Elias Probst
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Elias Probst 2015-01-28 21:44:57 UTC
Created attachment 90762 [details]
Backtrace of plasmashell crash

Some applications (e.g. plasmashell, krunner) crash here when unplugging my 2nd display.
Running KF5/Plasma 5 from git + Qt 5.4.0.

Relevant lines from backtrace (plasmashell crash, full BT attached):

Thread 1 (Thread 0x7f0a47b1d800 (LWP 2897)):
[KCrash Handler]
#6  KScreen::Config::output (this=0x0, outputId=outputId@entry=67) at /var/tmp/portage/kde-plasma/libkscreen-9999/work/libkscreen-9999/src/config.cpp:181
#7  0x00007f0a57430530 in KScreen::ConfigMonitor::Private::edidReady (this=0x30b21a0, watcher=<optimized out>) at /var/tmp/portage/kde-plasma/libkscreen-9999/work/libkscreen-9999/src/configmonitor.cpp:157
#8  0x00007f0a54d9e6af in call (a=0x7fff45f794b0, r=0x30b21a0, this=0x8da5110) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:124
#9  QMetaObject::activate (sender=0x9e1a850, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff45f794b0) at kernel/qobject.cpp:3702
#10 0x00007f0a54d9f257 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f0a5977d640 <QDBusPendingCallWatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff45f794b0) at kernel/qobject.cpp:3582
#11 0x00007f0a59761a7f in QDBusPendingCallWatcher::finished (this=<optimized out>, _t1=0x9e1a850) at .moc/moc_qdbuspendingcall.cpp:147
#12 0x00007f0a59763107 in _q_finished (this=<optimized out>) at qdbuspendingcall.cpp:487
#13 QDBusPendingCallWatcher::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qdbuspendingcall.cpp:79
#14 0x00007f0a54d9fa36 in QObject::event (this=0x9e1a850, e=<optimized out>) at kernel/qobject.cpp:1245
#15 0x00007f0a55625f0c in QApplicationPrivate::notify_helper (this=this@entry=0xc93630, receiver=receiver@entry=0x9e1a850, e=e@entry=0x9b06970) at kernel/qapplication.cpp:3722
#16 0x00007f0a5562af20 in QApplication::notify (this=0x7fff45f79c50, receiver=0x9e1a850, e=0x9b06970) at kernel/qapplication.cpp:3505
#17 0x00007f0a54d6f3e5 in QCoreApplication::notifyInternal (this=0x7fff45f79c50, receiver=0x9e1a850, event=event@entry=0x9b06970) at kernel/qcoreapplication.cpp:932
#18 0x00007f0a54d7127f in sendEvent (event=0x9b06970, receiver=<optimized out>) at kernel/qcoreapplication.h:228
#19 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0xc891b0) at kernel/qcoreapplication.cpp:1536
#20 0x00007f0a54d718b8 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1394
#21 0x00007f0a54dc7223 in postEventSourceDispatch (s=0xcc5ae0) at kernel/qeventdispatcher_glib.cpp:271
#22 0x00007f0a5023f934 in g_main_dispatch (context=0x7f0a40001e00) at /var/tmp/portage/dev-libs/glib-2.40.2/work/glib-2.40.2/glib/gmain.c:3064
#23 g_main_context_dispatch (context=context@entry=0x7f0a40001e00) at /var/tmp/portage/dev-libs/glib-2.40.2/work/glib-2.40.2/glib/gmain.c:3663
#24 0x00007f0a5023fb78 in g_main_context_iterate (context=context@entry=0x7f0a40001e00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.40.2/work/glib-2.40.2/glib/gmain.c:3734
#25 0x00007f0a5023fc1c in g_main_context_iteration (context=0x7f0a40001e00, may_block=1) at /var/tmp/portage/dev-libs/glib-2.40.2/work/glib-2.40.2/glib/gmain.c:3795
#26 0x00007f0a54dc669c in QEventDispatcherGlib::processEvents (this=0xcc5ac0, flags=...) at kernel/qeventdispatcher_glib.cpp:418
#27 0x00007f0a54d6d34b in QEventLoop::exec (this=this@entry=0x7fff45f79ae0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#28 0x00007f0a54d749b6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1185
#29 0x00007f0a5509786c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1532
#30 0x00007f0a55622715 in QApplication::exec () at kernel/qapplication.cpp:2956
#31 0x000000000042f274 in main (argc=2, argv=<optimized out>) at /var/tmp/portage/kde-plasma/plasma-workspace-9999/work/plasma-workspace-9999/shell/main.cpp:150
Comment 1 Daniel Vrátil 2015-01-29 15:33:51 UTC
Git commit d3aa0f06fd6b657071aae7235472267498b4703f by Dan Vrátil.
Committed on 29/01/2015 at 15:30.
Pushed by dvratil into branch 'Plasma/5.2'.

Fix crash when multiple EDID requests for the same output are enqueued

When the first EDID date are delivered, the output is removed from
the list of pending requests, causing crash when response to the second
request arrives.

This fix makes the code more robust by allowing multiple request for the
same output per single config as well as handling multiple configs.
FIXED-IN: 5.2.1

M  +16   -21   src/configmonitor.cpp

http://commits.kde.org/libkscreen/d3aa0f06fd6b657071aae7235472267498b4703f
Comment 2 Daniel Vrátil 2015-03-05 15:22:16 UTC
*** Bug 344323 has been marked as a duplicate of this bug. ***
Comment 3 Daniel Vrátil 2015-03-05 18:44:27 UTC
*** Bug 344113 has been marked as a duplicate of this bug. ***
Comment 4 Pawel Smolinski 2015-03-05 18:55:01 UTC
I am having plasma 5.2.1 installed from few days and I'm still experiencing this issue (in relation to bug marked as duplication of this (344311)). It is not happening all the time but from time to time now.
I will provide more details next week when I'll back from the trip and will get this error again.