Bug 343836 - Several applications segfault after reboot from session with external monitor
Summary: Several applications segfault after reboot from session with external monitor
Status: RESOLVED UPSTREAM
Alias: None
Product: KScreen
Classification: Plasma
Component: kded (show other bugs)
Version: 5.2.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Daniel Vrátil
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-05 22:26 UTC by Pieter David
Modified: 2015-03-05 13:21 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pieter David 2015-02-05 22:26:54 UTC
I was working on an external monitor (no output on the laptop screen) and shut down my laptop. After starting up again, the screen turned black by the end of the splash screen after login. It turns out ksplashqml, krunner, baloo_file, kwin_x11, plasmashell etc. segfaulted. The error message (with QOffScreenBuffer) hints at the multi-monitor setup as the cause, as well as the fact that removing the files in $HOME/.local/share/kscreen solved the problem.

Reproducible: Didn't try

Steps to Reproduce:
1. connect an external monitor and set it as the only output
2. reboot
3. log in

Actual Results:  
the screen turns black

Expected Results:  
the plasma desktop shows up

Journalctl:

kscreen.xrandr: XRRSetCrtcConfig() returned 0
kscreen.xrandr: DPI:  96.0946
kscreen.xrandr: Size:  QSize(0, 0)
kscreen.xrandr: QSize(0, 0)   0 x 0
kscreen.xrandr: Applied screen size change to  QSize(0, 0)
kscreen.xrandr: XRandR::setConfig done!
QObject::connect: Cannot connect (null)::destroyed(QObject*) to QOffscreenSurface::screenDestroyed(QObject*)
ksplashqml[1819]: segfault at 8 ip 00007f4e6019f080 sp 00007fffd79b55a8 error 4 in libQt5Gui.so.5.4.0[7f4e6008e000+521000]
kscreen.kded: Config applied
kscreen.kded: Monitor for changes:  true
kscreen.xcb.helper: CRTC CHANGE
kscreen.xcb.helper: CRTC:  63
kscreen.xcb.helper: Mode:  0
kscreen.xcb.helper: Rotation:  "RR_Rotate_0"
kscreen.xcb.helper: Geometry:  0 0 0 0
kscreen.xcb.helper: OUTPUT CHANGE
kscreen.xcb.helper: Output:  66
kscreen.xcb.helper: CRTC:  0
kscreen.xcb.helper: Mode:  0
kscreen.xcb.helper: Rotation:  "RR_Rotate_0"
kscreen.xcb.helper: Connection:  "RR_Connected"
kscreen.xcb.helper: Subpixel Order:  1
krunner[1870]: segfault at 18 ip 00007fdc8ac6cf79 sp 00007fff23b0e150 error 4 in libqxcb.so[7fdc8ac24000+b7000]
baloo_file[1869]: segfault at 18 ip 00007fbb5e923f79 sp 00007fff330af0e0 error 4 in libqxcb.so[7fbb5e8db000+b7000]
kwin_x11[1868]: segfault at 18 ip 00007fb555b74f79 sp 00007fffe85df810 error 4 in libqxcb.so[7fb555b2c000+b7000]
kscreen: Requesting missing EDID for outputs QSet(66)
kscreen.kded: Change detected
kf5.kinit.klauncher: Service:  0 "/etc/xdg/autostart/plasmashell.desktop"
kf5.kinit.klauncher: "/usr/bin/plasmashell" (pid 1878) up and running.
Process 1869 (baloo_file) of user 1000 dumped core.
Process 1868 (kwin_x11) of user 1000 dumped core.
Process 1870 (krunner) of user 1000 dumped core.
kscreen.kded: Saving current config to file
kscreen.kded: Calculating config ID for KScreen::Config(0x120d140)
kscreen.kded:   Part of the Id:  "1b55e7f848868e47e79b0f091b7de871"
kscreen.kded:   Config ID: "711e13d0a33c325b60befce54cbddf54"
kscreen.kded: Config saved on:  "/home/pieter/.local/share/kscreen/711e13d0a33c325b60befce54cbddf54"

backtrace of /usr/bin/ksplashqml (the first program to segfault):

#0  0x00007f4e6019f080 in QScreen::handle() const () from /usr/lib/libQt5Gui.so.5
#1  0x00007f4e4ed41a9e in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#2  0x00007f4e4ed1c9f3 in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#3  0x00007f4e60182253 in QOffscreenSurface::create() () from /usr/lib/libQt5Gui.so.5
#4  0x00007f4e609a8cfc in ?? () from /usr/lib/libQt5Quick.so.5
#5  0x00007f4e609d9e03 in QQuickWindow::~QQuickWindow() () from /usr/lib/libQt5Quick.so.5
#6  0x00000000004073f1 in ~SplashWindow (this=0xbcb6d0, __in_chrg=<optimized out>)
    at /home/pieter/builds/plasma-workspace/src/plasma-workspace-5.2.0/ksplash/ksplashqml/splashwindow.h:29
#7  SplashWindow::~SplashWindow (this=0xbcb6d0, __in_chrg=<optimized out>)
    at /home/pieter/builds/plasma-workspace/src/plasma-workspace-5.2.0/ksplash/ksplashqml/splashwindow.h:29
#8  0x00007f4e5fe7e4f8 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#9  0x00007f4e60181778 in QWindow::event(QEvent*) () from /usr/lib/libQt5Gui.so.5
#10 0x00007f4e609e23b3 in QQuickWindow::event(QEvent*) () from /usr/lib/libQt5Quick.so.5
#11 0x00007f4e5fe4d965 in QCoreApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#12 0x00007f4e5fe4da9b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#13 0x00007f4e5fe4fadb in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#14 0x00007f4e5fea4c83 in ?? () from /usr/lib/libQt5Core.so.5
#15 0x00007f4e5a5b4a0d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#16 0x00007f4e5a5b4cf8 in ?? () from /usr/lib/libglib-2.0.so.0
#17 0x00007f4e5a5b4dac in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#18 0x00007f4e5fea5077 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#19 0x00007f4e5fe4b532 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#20 0x00007f4e5fe52f0c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#21 0x0000000000405032 in main (argc=3, argv=0x7fffd79b5dd8)"QOffscreenSurface::screenDestroyed" at /home/pieter/builds/plasma-workspace/src/plasma-workspace-5.2.0/ksplash/ksplashqml/main.cpp:96

backtrace for baloo_file (those for plasmashell and /usr/lib/polkit-kde/polkit-kde-authentication-agent-1 are almost identical)

#0  0x00007fbb5e923f79 in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#1  0x00007fbb5e9244bb in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#2  0x00007fbb5e90d00f in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#3  0x00007fbb5e9108ce in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#4  0x00007fbb5e92456b in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#5  0x00007fbb6f396d52 in QPlatformIntegrationFactory::create(QString const&, QStringList const&, int&, char**, QString const&) ()
   from /usr/lib/libQt5Gui.so.5
#6  0x00007fbb6f3a2786 in QGuiApplicationPrivate::createPlatformIntegration() () from /usr/lib/libQt5Gui.so.5
#7  0x00007fbb6f3a350d in QGuiApplicationPrivate::createEventDispatcher() () from /usr/lib/libQt5Gui.so.5
#8  0x00007fbb6f081b4f in QCoreApplication::init() () from /usr/lib/libQt5Core.so.5
#9  0x00007fbb6f081bb6 in QCoreApplication::QCoreApplication(QCoreApplicationPrivate&) () from /usr/lib/libQt5Core.so.5
#10 0x00007fbb6f3a5669 in QGuiApplication::QGuiApplication(QGuiApplicationPrivate&) () from /usr/lib/libQt5Gui.so.5
#11 0x00007fbb6f95e49d in QApplication::QApplication(int&, char**, int) () from /usr/lib/libQt5Widgets.so.5
#12 0x0000000000416ede in main ()
Comment 1 Pieter David 2015-02-14 12:44:42 UTC
I tried to reproduce, but did not manage. I suspect it may also have had something to do with restoring the desktop session (I changed that to always starting an empty session at login now).
Comment 2 Daniel Vrátil 2015-03-05 13:21:32 UTC
This is a known Qt bug: https://bugreports.qt.io/browse/QTBUG-42985 which should be fixed in Qt 5.5.