Bug 344113 - plasmashell crashes when manually changing display settings using xrandr (kscreen related)
Summary: plasmashell crashes when manually changing display settings using xrandr (ksc...
Status: RESOLVED DUPLICATE of bug 343482
Alias: None
Product: KScreen
Classification: Plasma
Component: libkscreen (show other bugs)
Version: 5.2.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: 1.0
Assignee: Daniel Vrátil
URL:
Keywords:
: 344311 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-02-13 11:57 UTC by Bas van Schaik
Modified: 2015-03-05 18:44 UTC (History)
3 users (show)

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


Attachments
Stacktrace (61.31 KB, text/plain)
2015-02-13 11:58 UTC, Bas van Schaik
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bas van Schaik 2015-02-13 11:57:43 UTC
I have a script running that detects when I (dis)connect my two office monitors (using DisplayPort MST), and changes the xrandr configuration accordingly. However, plasmashell crashes ~50% of the times the xrandr settings are changed.

I use the following xrandr commands:
 - for enabling 2 external monitors and the laptop's LVDS: /usr/bin/xrandr --output VGA-0 --off --output DP-4.8 --mode 2560x1440 --pos 2560x0 --rotate normal --output LVDS-0 --mode 1920x1080 --pos 5120x360 --rotate normal --output DP-4.1.8 --mode 2560x1440 --pos 0x0 --rotate normal --output DP-5 --off --output DP-4 --off --output DP-3 --off --output DP-2 --off --output DP-1 --off --output DP-0 --off
 - for enabling just the laptop's LVDS: /usr/bin/xrandr --output VGA-0 --off --output LVDS-0 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-4.8 --off --output DP-4.1.8 --off --output DP-5 --off --output DP-4 --off --output DP-3 --off --output DP-2 --off --output DP-1 --off --output DP-0 --off

Reproducible: Sometimes

Steps to Reproduce:
1. connect/disconnect external display
2. activate manual configuration using xrandr


Actual Results:  
Display settings change as expected, but plasmashell crashes ~50% of the time

Expected Results:  
plasmashell behaving

From the following stack trace (too long to fully include, will try to upload it after filing this bug), it appears that kscreen is the culprit:

Application: plasmashell (plasmashell), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fe6f4157880 (LWP 19894))]

Thread 60 (Thread 0x7fe6de32c700 (LWP 19896)):
#0  0x00007fe6eef6a3dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fe6f1733b72 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fe6f173564f in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fe6e0efaf79 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
#4  0x00007fe6ef5f1e4e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fe6ee8020a5 in start_thread (arg=0x7fe6de32c700) at pthread_create.c:309
#6  0x00007fe6eef7488d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

(...)

Thread 3 (Thread 0x7fe52b7ff700 (LWP 20002)):
#0  0x00007fe6eb8a274e in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fe6eb8a2e83 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fe6eb8a2ffc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fe6ef88228c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fe6ef8288d2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fe6ef5ed074 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fe6f3e1c256 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007fe6ef5f1e4e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fe6ee8020a5 in start_thread (arg=0x7fe52b7ff700) at pthread_create.c:309
#9  0x00007fe6eef7488d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7fe52a1ed700 (LWP 20003)):
#0  0x00007fe6ef882291 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#1  0x00007fe6ef8288d2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007fe6ef5ed074 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007fe6f3e1c256 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#4  0x00007fe6ef5f1e4e in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fe6ee8020a5 in start_thread (arg=0x7fe52a1ed700) at pthread_create.c:309
#6  0x00007fe6eef7488d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7fe6f4157880 (LWP 19894)):
[KCrash Handler]
#5  0x00007fe6f1f778ef in KScreen::Config::output(int) const () from /usr/lib/x86_64-linux-gnu/libKF5Screen.so.6
#6  0x00007fe6f1f804f0 in KScreen::ConfigMonitor::Private::edidReady(QDBusPendingCallWatcher*) () from /usr/lib/x86_64-linux-gnu/libKF5Screen.so.6
#7  0x00007fe6ef859fea in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fe6f42c1e2f in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#9  0x00007fe6f42c3535 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#10 0x00007fe6ef85b7ba in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007fe6f0129d3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007fe6f012f330 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007fe6ef82b03b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007fe6ef82d07b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007fe6ef881e83 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007fe6eb8a2c5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007fe6eb8a2f48 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007fe6eb8a2ffc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007fe6ef882277 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007fe6ef8288d2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007fe6ef83037c in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x000000000042fccf in main ()


Possibly related to #343202 #339708, but these bugs show very different stack traces. I've installed the kscreen debugging symbols, but for some reason the stack trace won't show more details.
Comment 1 Bas van Schaik 2015-02-13 11:58:25 UTC
Created attachment 91044 [details]
Stacktrace
Comment 2 David Edmundson 2015-02-18 14:54:43 UTC
*** Bug 344311 has been marked as a duplicate of this bug. ***
Comment 3 Bas van Schaik 2015-02-18 14:59:09 UTC
Note that the duplicate bug 344311 also has a stack trace attached to it - not sure whether that one might reveal more or other details.
Comment 4 Daniel Vrátil 2015-03-05 18:44:27 UTC
Should be fixed in Plasma 5.2.1

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