#865001 kscreen_backend[....]: segfault at 10 ip .... sp ... error 4 in KSC_XRandR.so

Package:
libkf5screen-bin
Source:
libkscreen
Description:
library for screen management - helpers
Submitter:
"Dr. David Alan Gilbert"
Date:
2017-09-24 20:03:03 UTC
Severity:
normal
#865001#5
Date:
2017-06-18 13:52:29 UTC
From:
To:
Dear Maintainer,

   * What led up to the situation?
     Not sure, but I suspect it's the result of setting the display resolution under KDE
     in my previous session

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

     Fresh debian 9  install in QEMU (on a Fedora host)
     Selected KDE during install
     Installed fine, rebooted OK
     Logged into KDE session fine
     Increased screen res to 1440x900
     Set keyboard layout
     Logged out
     Tried to log back in

   * What was the outcome of this action?
     Logging in failed, it returned me back to the login manager
     a dmesg shows the:
          kscreen_backend[1507]: segfault at 10 ip 00007f73a0130568 sp 00007ffd29db5570 error 4 in KSC_XRandR.so[7f73a0116000+23000]
          addresses are changing each time, but the IP always seems to end in 568

   * What outcome did you expect instead?
     I could log back into KDE

#865001#10
Date:
2017-06-18 14:56:47 UTC
From:
To:
I think this is fall out from the X server crashing first - I filed
bug 864998 for what looks like a qxl driver bug that is causing X to
crash; but still I don't think kscreen_backend should be crashing,
it should be exiting with an error if X disappears.

Dave

#865001#15
Date:
2017-09-24 19:30:32 UTC
From:
To:
I've done a little digging; firstly I think it's the same as:

https://bugs.kde.org/show_bug.cgi?id=368494   (to which I commented
      although it's closed because it went away when the reporter updated
      their X server)
and
https://bugzilla.redhat.com/show_bug.cgi?id=1477592
and possibly
https://bugzilla.redhat.com/show_bug.cgi?id=1406752

I added a little debug to libkf5screen
#0  XRandRScreen::toKScreenScreen (this=0x559dd8b68980) at ./backends/xrandr/xrandrscreen.cpp:68
        screenResources = {d = 0x0}
        kscreenScreen = {value = 0x559dd8b78a70, d = 0x559dd8b78b90}
#1  0x00007fe0e9b18aba in XRandRConfig::toKScreenConfig (this=<optimized out>) at ./backends/xrandr/xrandrconfig.cpp:117
        config = {value = 0x559dd8b7ea80, d = 0x559dd8b7eb30}
        features = {i = 3}
        kscreenOutputs = {d = 0x559dd8b74bb0}
#2  0x00007fe0e9b14c14 in XRandR::config (this=<optimized out>) at ./backends/xrandr/xrandr.cpp:205
No locals.
#3  0x0000559dd6d7fac6 in BackendDBusWrapper::setConfig (this=0x559dd8b69c10, configMap=...)
    at ./src/backendlauncher/backenddbuswrapper.cpp:87
        config = {value = 0x559dd8b778c0, d = 0x559dd8b77be0}
        obj = {d = 0x559dd8b7ea80, o = 0x559dd8b7eb30}
#4  0x0000559dd6d815ef in BackendAdaptor::setConfig (in0=..., this=<optimized out>)
    at ./obj-x86_64-linux-gnu/src/backendlauncher/backendadaptor.cpp:51
No locals.

and:
KScreen::ScreenPtr XRandRScreen::toKScreenScreen() const
{
    KScreen::ScreenPtr kscreenScreen(new KScreen::Screen);
    kscreenScreen->setId(m_id);
    kscreenScreen->setMaxSize(m_maxSize);
    kscreenScreen->setMinSize(m_minSize);
    kscreenScreen->setCurrentSize(m_currentSize);

    XCB::ScopedPointer<xcb_randr_get_screen_resources_reply_t> screenResources(XRandR::screenResources());
    kscreenScreen->setMaxActiveOutputsCount(screenResources->num_crtcs);

    return kscreenScreen;
}

the problem is the screenResources.d is NULL
I don't know the sctructure of the KDE code to know where the right place
is to fix this.

Dave