Bug 964353 - QT 5.5.based plasmashell and sddm-greeter can't cope with no monitor or monitor powered down
Summary: QT 5.5.based plasmashell and sddm-greeter can't cope with no monitor or monit...
Status: RESOLVED FIXED
: 965517 (view as bug list)
Alias: None
Product: openSUSE Distribution
Classification: openSUSE
Component: KDE Workspace (Plasma) (show other bugs)
Version: 13.2
Hardware: x86-64 openSUSE 42.1
: P5 - None : Major with 1 vote (vote)
Target Milestone: ---
Assignee: E-Mail List
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 1098890
  Show dependency treegraph
 
Reported: 2016-01-31 10:42 UTC by Forgotten User qouZmm_Kx7
Modified: 2018-06-22 21:23 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Forgotten User qouZmm_Kx7 2016-01-31 10:42:24 UTC
Plasmashell crashes or displays malfunctions if a monitor is unplugged or powered off.
The problem is reported here:
https://forums.opensuse.org/showthread.php/512997-Plasma-5-KDE-Switching-monitor-off-will-cause-some-KDE-malfunctions

To reproduce:
xrandr --output DP3 --off ; xrandr --output DP3  --auto
(change DP3 to the pertinent display name) 

This is the crash report:
(gdb) bt
#0  0x00007f7d08147ded in nanosleep () at /lib64/libc.so.6
#1  0x00007f7d08147c84 in sleep () at /lib64/libc.so.6
#2  0x00007f7d0e89bbac in startProcessInternal(int, char const**, bool, bool) (argc=<optimized out>, argv=0x7ffe4b4744b0, waitAndExit=waitAndExit@entry=true, directly=directly@entry=false) at /usr/src/debug/kcrash-5.18.0/src/kcrash.cpp:650
#3  0x00007f7d0e89c22a in KCrash::startProcess(int, char const**, bool) (argc=argc@entry=21, argv=argv@entry=0x7ffe4b4744b0, waitAndExit=waitAndExit@entry=true) at /usr/src/debug/kcrash-5.18.0/src/kcrash.cpp:616
#4  0x00007f7d0e89c675 in KCrash::defaultCrashHandler(int) (sig=<optimized out>) at /usr/src/debug/kcrash-5.18.0/src/kcrash.cpp:527
#5  0x00007f7d080c6200 in <signal handler called> () at /lib64/libc.so.6
#6  0x00007f7d08fb8290 in QScreen::handle() const (this=0x0) at kernel/qscreen.cpp:112
#7  0x00007f7cfa7f4be9 in QXcbIntegration::createPlatformWindow(QWindow*) const (this=<optimized out>, window=0x2ae79d0) at qxcbintegration.cpp:196
#8  0x00007f7d08f98e25 in QWindowPrivate::create(bool) (this=0x1175d80, recursive=recursive@entry=false) at kernel/qwindow.cpp:392
#9  0x00007f7d08f9901b in QWindow::create() (this=this@entry=0x2ae79d0) at kernel/qwindow.cpp:548
#10 0x00007f7d08f990a8 in QWindow::winId() const (this=0x2ae79d0) at kernel/qwindow.cpp:567
#11 0x00007f7d0e667175 in  () at /usr/lib64/libKF5PlasmaQuick.so.5
#12 0x00007f7d0e6699f9 in  () at /usr/lib64/libKF5PlasmaQuick.so.5
#13 0x00007f7d08a70cc6 in QMetaObject::activate(QObject*, int, int, void**) (sender=0x297d830, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3713
#14 0x00007f7d08a7073f in QMetaObject::activate(QObject*, int, int, void**) (a=0x7ffe4b474f90, r=0x297d830, this=0x29a86f0)
    at ../../src/corelib/kernel/qobject_impl.h:124
#15 0x00007f7d08a7073f in QMetaObject::activate(QObject*, int, int, void**) (sender=0xdf8370, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3698
#16 0x00007f7d08a70cc6 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0xdf41e0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3713
#17 0x00007f7d08a712e7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0xdf41e0, m=m@entry=0x7f7d08e8f860 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3578
#18 0x00007f7d08af2a90 in QTimer::timeout(QTimer::QPrivateSignal) (this=this@entry=0xdf41e0) at .moc/moc_qtimer.cpp:197
#19 0x00007f7d08a7df22 in QTimer::timerEvent(QTimerEvent*) (this=0xdf41e0, e=<optimized out>) at kernel/qtimer.cpp:247
#20 0x00007f7d08a718bc in QObject::event(QEvent*) (this=0xdf41e0, e=<optimized out>) at kernel/qobject.cpp:1220
#21 0x00007f7d09db9e7c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0xc666a0, receiver=receiver@entry=0xdf41e0, e=e@entry=
    0x7ffe4b4754f0) at kernel/qapplication.cpp:3716
#22 0x00007f7d09dbecc8 in QApplication::notify(QObject*, QEvent*) (this=0x7ffe4b4758a0, receiver=0xdf41e0, e=0x7ffe4b4754f0) at kernel/qapplication.cpp:3499
#23 0x00007f7d08a40e95 in QCoreApplication::notifyInternal(QObject*, QEvent*) (this=0x7ffe4b4758a0, receiver=0xdf41e0, event=event@entry=0x7ffe4b4754f0)
    at kernel/qcoreapplication.cpp:965
#24 0x00007f7d08a9777d in QTimerInfoList::activateTimers() (event=0x7ffe4b4754f0, receiver=<optimized out>)
    at ../../src/corelib/kernel/qcoreapplication.h:224
#25 0x00007f7d08a9777d in QTimerInfoList::activateTimers() (this=0xcadc50) at kernel/qtimerinfo_unix.cpp:637
#26 0x00007f7d08a97aa1 in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:177
#27 0x00007f7d0484ec84 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#28 0x00007f7d0484eed8 in  () at /usr/lib64/libglib-2.0.so.0
#29 0x00007f7d0484ef7c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#30 0x00007f7d08a97d8b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xca3db0, flags=...)
    at kernel/qeventdispatcher_glib.cpp:420
#31 0x00007f7d08a3ed53 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe4b475730, flags=..., flags@entry=...)
    at kernel/qeventloop.cpp:204
#32 0x00007f7d08a468f6 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1229
#33 0x00007f7d08f8a79c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1527
#34 0x00007f7d09db6605 in QApplication::exec() () at kernel/qapplication.cpp:2976
#35 0x0000000000436ab6 in main(int, char**) (argc=2, argv=<optimized out>) at /usr/src/debug/plasma-workspace-5.5.4/shell/main.cpp:181

sddm-greeter exits if the monitor is not switched on when the gretter is shown.
The problem is reported here:
https://forums.opensuse.org/showthread.php/513153-ssdm-greeter-exits-or-hangs-if-a-new-monitor-is-plugged-or-switched-on

System logs:
2016-01-28T23:11:19.980147+01:00 kenshiro sddm[1091]: Running display setup script  "/etc/X11/xdm/Xsetup"
2016-01-28T23:11:19.993288+01:00 kenshiro sddm[1091]: Display server started.
2016-01-28T23:11:19.993497+01:00 kenshiro sddm[1091]: Socket server starting...
2016-01-28T23:11:19.993639+01:00 kenshiro sddm[1091]: Socket server started.
2016-01-28T23:11:19.993885+01:00 kenshiro sddm[1091]: Greeter starting...
2016-01-28T23:11:19.994039+01:00 kenshiro sddm[1091]: Adding cookie to "/run/sddm/{5ab51fe3-b0e9-41b7-b2ed-294821cc0322}"
2016-01-28T23:11:19.998523+01:00 kenshiro sddm-helper[1653]: [PAM] Starting...
2016-01-28T23:11:19.998753+01:00 kenshiro sddm-helper[1653]: [PAM] Authenticating...
2016-01-28T23:11:19.998916+01:00 kenshiro sddm-helper[1653]: [PAM] returning.
2016-01-28T23:11:19.999052+01:00 kenshiro sddm-helper: pam_unix(sddm-greeter:session): session opened for user sddm by (uid=0)
2016-01-28T23:11:20.014407+01:00 kenshiro sddm[1091]: Greeter session started successfully
2016-01-28T23:11:20.027505+01:00 kenshiro sddm-greeter[1655]: Reading from "/usr/share/xsessions/enlightenment.desktop"
2016-01-28T23:11:20.027786+01:00 kenshiro sddm-greeter[1655]: Reading from "/usr/share/xsessions/gnome.desktop"
2016-01-28T23:11:20.027936+01:00 kenshiro sddm-greeter[1655]: Reading from "/usr/share/xsessions/icewm.desktop"
2016-01-28T23:11:20.028071+01:00 kenshiro sddm-greeter[1655]: Reading from "/usr/share/xsessions/kde-plasma.desktop"
2016-01-28T23:11:20.028204+01:00 kenshiro sddm-greeter[1655]: Reading from "/usr/share/xsessions/plasma5.desktop"
2016-01-28T23:11:20.028340+01:00 kenshiro sddm-greeter[1655]: Connected to the daemon.
2016-01-28T23:11:20.028474+01:00 kenshiro sddm[1091]: Message received from greeter: Connect
2016-01-28T23:11:20.062294+01:00 kenshiro sddm-greeter[1655]: QObject::installEventFilter(): Cannot filter events for objects in a different thread.
2016-01-28T23:11:20.250847+01:00 kenshiro sddm-greeter[1655]: QObject::installEventFilter(): Cannot filter events for objects in a different thread.
2016-01-28T23:11:20.404977+01:00 kenshiro sddm-greeter[1655]: file:///usr/share/sddm/themes/breeze/components/InfoPane.qml:52:22: Unable to assign [undefined] to int
2016-01-28T23:11:20.405245+01:00 kenshiro sddm-greeter[1655]: Adding view for "HDMI2" QRect(0,0 1920x1080)
2016-01-28T23:11:20.408967+01:00 kenshiro sddm-greeter[1655]: Message received from daemon: Capabilities
2016-01-28T23:11:20.409139+01:00 kenshiro sddm-greeter[1655]: Message received from daemon: HostName
2016-01-28T23:15:03.058840+01:00 kenshiro sddm-helper[1653]: [PAM] Ended.
2016-01-28T23:15:03.059337+01:00 kenshiro sddm[1091]: Auth: sddm-helper exited successfully
2016-01-28T23:15:03.059517+01:00 kenshiro sddm[1091]: Greeter stopped.

Apparently both are related to this upstream bug:
https://bugreports.qt.io/browse/QTBUG-42985

Leap 42.1 KDE is basically unusable in this state and, as far as I can tell, upstream provided a bugfix but decided not to implement it in QT 5.5. Would it be possible to upgrade QT in Leap to 5.6?
Comment 1 Forgotten User qouZmm_Kx7 2016-02-08 11:45:58 UTC
*** Bug 965517 has been marked as a duplicate of this bug. ***
Comment 2 Karl Cheng 2017-11-16 11:38:32 UTC
This is fixed in Leap 42.2+ with the upgrade to Qt 5.6.