Bug 445507 - kwin_wayland crashes on simpledrm
Summary: kwin_wayland crashes on simpledrm
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: platform-drm (show other bugs)
Version: git master
Platform: Other Linux
: NOR critical
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-14 23:35 UTC by bluescreenavenger
Modified: 2021-11-22 23:04 UTC (History)
1 user (show)

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 bluescreenavenger 2021-11-14 23:35:53 UTC
I suspect that e2a0863843f92ab1f2f8d0c785a86570fc04d774 is the cause as it worked on this driver before, and if I do build before it it runs, and there is a function in the stack that seems to be added in this commit,

I could be wrong
Hopefully the stacktrace is helpful


#0  0x00007fd0609931ad in KWin::DrmObject::commitPending (this=0x0)
    at /srcbuild/kwin/src/backends/drm/drm_object.cpp:109
No locals.
#1  0x00007fd0609a76fe in KWin::DrmPipeline::commitPipelines (pipelines=..., 
    mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, unusedObjects=...)
    at /srcbuild/kwin/src/backends/drm/drm_pipeline.cpp:179
        pipeline = @0x560f9eb60ee8: 0x560f9e698080
        __for_range = @0x560f9e598558: {d = 0x560f9eb60ed0}
        __for_begin = 0x560f9eb60ee8
        __for_end = 0x560f9eb60ef0
        req = 0x560f9eb647d0
        flags = 1024
        failed = @0x7ffc2536e418: {__pipelines = {d = 0x560f9eb60ed0}, __req = 0x560f9eb647d0, 
          __mode = KWin::DrmPipeline::CommitMode::Test, __flags = @0x7ffc2536e3dc, __unusedObjects = {
            d = 0x560f9eb65270}}
        modeset = <optimized out>
        __PRETTY_FUNCTION__ = "static bool KWin::DrmPipeline::commitPipelines(const QVector<KWin::DrmPipeline*>&, KWin::DrmPipeline::CommitMode, const QVector<KWin::DrmObject*>&)"
#2  0x00007fd0609a0f22 in KWin::DrmGpu::checkCrtcAssignment (this=this@entry=0x560f9e5984e0, connectors=..., 
    crtcs=...) at /srcbuild/kwin/src/backends/drm/drm_gpu.cpp:347
        leasePipelines = {d = 0x7fd067120720 <QArrayData::shared_null>}
        unused = {d = 0x560f9eb65270}
        test = <optimized out>
        __PRETTY_FUNCTION__ = "bool KWin::DrmGpu::checkCrtcAssignment(QVector<KWin::DrmConnector*>, QVector<KWin::DrmCrtc*>)"
        connector = <optimized out>
        pipeline = <optimized out>
        encoders = {d = 0x7ffc2536e590}
#3  0x00007fd0609a11e3 in KWin::DrmGpu::checkCrtcAssignment (this=this@entry=0x560f9e5984e0, connectors=..., 
    crtcs=...) at /srcbuild/kwin/src/backends/drm/drm_gpu.cpp:389
        crtcsLeft = {d = 0x560f9eb65220}
        crtc = @0x560f9eb651e8: 0x560f9e60ae60
        __for_range = @0x7ffc2536e628: {d = 0x560f9eb651d0}
        __for_begin = 0x560f9eb651e8
        __for_end = 0x560f9eb651f0
        enc = {d = <optimized out>}
        encoder = @0x560f9eb646b8: 35
        __for_range = @0x7ffc2536e588: {d = 0x560f9eb646a0}
        __for_begin = 0x560f9eb646b8
        __for_end = 0x560f9eb646bc
        __PRETTY_FUNCTION__ = "bool KWin::DrmGpu::checkCrtcAssignment(QVector<KWin::DrmConnector*>, QVector<KWin::DrmCrtc*>)"
        connector = 0x7ffc2536e590
        pipeline = 0x560f9e698080
        encoders = {d = 0x560f9eb646a0}
#4  0x00007fd0609a1401 in KWin::DrmGpu::testPendingConfiguration (this=this@entry=0x560f9e5984e0) at /srcbuild/kwin/src/backends/drm/drm_gpu.cpp:420
        connectors = {d = 0x560f9eb649f0}
        crtcs = {d = 0x560f9e5f2b40}
#5  0x00007fd0609a1c88 in KWin::DrmGpu::updateOutputs (this=this@entry=0x560f9e5984e0) at /srcbuild/kwin/src/backends/drm/drm_gpu.cpp:310
        resources = {d = <optimized out>}
        __PRETTY_FUNCTION__ = "bool KWin::DrmGpu::updateOutputs()"
        lessees = <optimized out>
        removedConnectors = {d = 0x7fd067120720 <QArrayData::shared_null>}
#6  0x00007fd060990973 in KWin::DrmBackend::updateOutputs (this=0x560f9e52b580) at /srcbuild/kwin/src/backends/drm/drm_backend.cpp:310
        gpu = 0x560f9e5984e0
        it = 0x560f9e5f2c18
        oldOutputs = {d = 0x7fd067120720 <QArrayData::shared_null>}
        __PRETTY_FUNCTION__ = "void KWin::DrmBackend::updateOutputs()"
#7  0x00007fd0670bdf7c in ?? () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#8  0x00007fd068c9e8f7 in KWin::Compositor::setupStart (this=0x560f9e66c380) at /srcbuild/kwin/src/composite.cpp:311
        supportedCompositors = {d = 0x560f9e6d7010}
        userConfigIt = 0x560f9e6d7028
        __PRETTY_FUNCTION__ = {<optimized out> <repeats 36 times>}
#9  0x00007fd068c9f057 in KWin::WaylandCompositor::start (this=0x560f9e66c380) at /srcbuild/kwin/src/composite.cpp:683
No locals.
#10 0x00007fd0670b739c in QObject::event(QEvent*) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#11 0x00007fd0679140c5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#12 0x00007fd0670a0afa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#13 0x00007fd0670a0d61 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#14 0x00007fd0670cfaea in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#15 0x0000560f9e1ee360 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
No symbol table info available.
#16 0x00007fd06709e692 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#17 0x00007fd0670a2873 in QCoreApplication::exec() () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#18 0x0000560f9e15040a in main (argc=<optimized out>, argv=<optimized out>) at /srcbuild/kwin/src/main_wayland.cpp:740
        userSignals = {__val = {2560, 0 <repeats 15 times>}}
        environment = {d = {d = 0x560f9e503050}}
        a = {<KWin::ApplicationWaylandAbstract> = {<KWin::Application> = {<QApplication> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7fd067cb4f60 <QApplication::staticMetaObject>}, stringdata = 0x7fd068dd3740 <qt_meta_stringdata_KWin__Application>, data = 0x7fd068dd35e0 <qt_meta_data_KWin__Application>, static_metacall = 0x7fd068c77d58 <KWin::Application::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static crashes = 0, m_eventFilters = {<QListSpecialMethods<QPointer<KWin::X11EventFilterContainer> >> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fd0671211d0 <QListData::shared_null>}, d = 0x7fd0671211d0 <QListData::shared_null>}}, m_genericEventFilters = {<QListSpecialMethods<QPointer<KWin::X11EventFilterContainer> >> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fd0671211d0 <QListData::shared_null>}, d = 0x7fd0671211d0 <QListData::shared_null>}}, m_eventFilter = {d = 0x560f9e537290}, m_configLock = false, m_config = {d = 0x560f9e537450}, m_kxkbConfig = {d = 0x560f9e57f8b0}, m_operationMode = KWin::Application::OperationModeXwayland, m_x11Time = 0, m_rootWindow = 0, m_connection = 0x0, m_defaultScreen = 0x0, m_useKActivities = true, m_platform = 0x560f9e52b580, m_terminating = false, m_isClosingX11Connection = false}, static staticMetaObject = {d = {superdata = {direct = 0x7fd068e9d1e0 <KWin::Application::staticMetaObject>}, stringdata = 0x7fd068dd35a0 <qt_meta_stringdata_KWin__ApplicationWaylandAbstract>, data = 0x7fd068dd3560 <qt_meta_data_KWin__ApplicationWaylandAbstract>, static_metacall = 0x7fd068c75e6a <KWin::ApplicationWaylandAbstract::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7fd068e9d1a0 <KWin::ApplicationWaylandAbstract::staticMetaObject>}, stringdata = 0x560f9e1ef2e0 <qt_meta_stringdata_KWin__ApplicationWayland>, data = 0x560f9e1ef2a0 <qt_meta_data_KWin__ApplicationWayland>, static_metacall = 0x560f9e1515f6 <KWin::ApplicationWayland::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_startXWayland = true, m_applicationsToStart = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fd0671211d0 <QListData::shared_null>}, d = 0x7fd0671211d0 <QListData::shared_null>}}, <No data fields>}, m_inputMethodServerToStart = {static null = {<No data fields>}, d = 0x7fd067120720 <QArrayData::shared_null>}, m_environment = {d = {d = 0x560f9e503050}}, m_sessionArgument = {static null = {<No data fields>}, d = 0x560f9e569a70}, m_xwayland = 0x0, m_xwaylandListenFds = {d = 0x7fd067120720 <QArrayData::shared_null>}, m_xwaylandDisplay = {static null = {<No data fields>}, d = 0x7fd067120720 <QArrayData::shared_null>}, m_xwaylandXauthority = {static null = {<No data fields>}, d = 0x7fd067120720 <QArrayData::shared_null>}, m_settingsWatcher = {value = 0x0, d = 0x0}}
        availablePlugins = {d = 0x560f9e529750}
        hasPlugin = {__availablePlugins = @0x7ffc2536ecd8}
        hasSizeOption = <optimized out>
        hasOutputCountOption = 72
        hasX11Option = true
        hasVirtualOption = true
        hasWaylandOption = true
        hasFramebufferOption = true
        hasDrmOption = <optimized out>
        xwaylandOption = {d = {d = 0x560f9e506a20}}
        waylandSocketOption = {d = {d = 0x560f9e544870}}
        framebufferOption = {d = {d = 0x560f9e546280}}
        framebufferDeviceOption = {d = {d = 0x560f9e545160}}
        x11DisplayOption = {d = {d = 0x560f9e544a40}}
        waylandDisplayOption = {d = {d = 0x560f9e54bfb0}}
        virtualFbOption = {d = {d = 0x560f9e547900}}
        widthOption = {d = {d = 0x560f9e539ee0}}
        heightOption = {d = {d = 0x560f9e54bf20}}
        scaleOption = {d = {d = 0x560f9e54bf60}}
        outputCountOption = {d = {d = 0x560f9e537ad0}}
        waylandSocketFdOption = {d = {d = 0x560f9e5448d0}}
        xwaylandListenFdOption = {d = {d = 0x560f9e544910}}
        xwaylandDisplayOption = {d = {d = 0x560f9e511330}}
        xwaylandXAuthorityOption = {d = {d = 0x560f9e54b2a0}}
        replaceOption = {d = {d = 0x560f9e54b340}}
        parser = {d = 0x560f9e544980}
        drmOption = {d = {d = 0x560f9e569d60}}
        inputMethodOption = {d = {d = 0x560f9e569e00}}
        listBackendsOption = {d = {d = 0x560f9e569f00}}
        screenLockerOption = {d = {d = 0x560f9e569fa0}}
        noScreenLockerOption = {d = {d = 0x560f9e56a040}}
        noGlobalShortcutsOption = {d = {d = 0x560f9e56a0e0}}
        noActivitiesOption = {d = {d = 0x560f9e546f90}}
        exitWithSessionOption = {d = {d = 0x560f9e569b40}}
        pluginName = {static null = {<No data fields>}, d = 0x560f9e1f0b20 <KWin::s_drmPlugin::{lambda()#1}::operator()() const::qstring_literal>}
        initialWindowSize = {wd = <optimized out>, ht = <optimized out>}
        deviceIdentifier = {d = 0x7fd067120720 <QArrayData::shared_null>}
        outputCount = <optimized out>
        outputScale = <optimized out>
        pluginIt = 0x7ffc2536ede8
        server = <optimized out>
        flags = {i = 624356824}
        socketName = {static null = {<No data fields>}, d = 0x560f9e547460}
Comment 1 Zamundaaa 2021-11-16 08:40:33 UTC
simpledrm is almost certainly lacking a cursor plane. Should be easy enough to fix.
Can you attach the output of drm_info, to make sure that is the case?
Comment 2 Bug Janitor Service 2021-11-16 11:26:01 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1670
Comment 3 bluescreenavenger 2021-11-16 12:41:25 UTC
I assume you mean the output of this utility https://github.com/ascent12/drm_info


    Driver: simpledrm (DRM driver for simple-framebuffer platform devices) version 1.0.0 (20200625) on Linux 5.14.17
        DRM_CLIENT_CAP_ASPECT_RATIO supported
        DRM_CLIENT_CAP_ATOMIC supported
        DRM_CLIENT_CAP_STEREO_3D supported
        DRM_CLIENT_CAP_UNIVERSAL_PLANES supported
        DRM_CLIENT_CAP_WRITEBACK_CONNECTORS supported
        DRM_CAP_ADDFB2_MODIFIERS = 1
        DRM_CAP_ASYNC_PAGE_FLIP = 0
        DRM_CAP_CRTC_IN_VBLANK_EVENT = 1
        DRM_CAP_CURSOR_HEIGHT = 64
        DRM_CAP_CURSOR_WIDTH = 64
        DRM_CAP_DUMB_BUFFER = 1
        DRM_CAP_DUMB_PREFERRED_DEPTH = 24
        DRM_CAP_DUMB_PREFER_SHADOW = 0
        DRM_CAP_PAGE_FLIP_TARGET = 0
        DRM_CAP_PRIME = 3
        DRM_CAP_SYNCOBJ = 0
        DRM_CAP_SYNCOBJ_TIMELINE = 0
        DRM_CAP_TIMESTAMP_MONOTONIC = 1
        DRM_CAP_VBLANK_HIGH_CRTC = 1
    Device: platform simple-framebuffer
    Connectors
        Connector 0
            Object ID: 31
            Type: unknown
            Encoders: {35}
            Properties
                "CRTC_ID" (atomic): object CRTC = 34
                "DPMS": enum {"On", "Standby", "Suspend", "Off"} = On
                "EDID" (immutable): blob = <nil>
                "TILE" (immutable): blob = <nil>
                "link-status": enum {"Good", "Bad"} = Good
                "non-desktop" (immutable): range [0, 1] = 0
    Encoders
        Encoder 0
            Object ID: 35
            Type: none
            CRTCs: {0}
            Clones: {0}
    CRTCs
        CRTC 0
            Object ID: 34
            Gamma size: 0
            Properties
                "ACTIVE" (atomic): range [0, 1] = 1
                "MODE_ID" (atomic): blob = 800x600
                "OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
                "VRR_ENABLED": range [0, 1] = 0
    Planes
        Plane 0
            Object ID: 32
            CRTCs: {0}
            Formats:
                RGB888 (0x34324752)
                XRGB8888 (0x34325258)
                ARGB8888 (0x34325241)
                RGB565 (0x36314752)
            Properties
                "CRTC_H" (atomic): range [0, INT32_MAX] = 600
                "CRTC_ID" (atomic): object CRTC = 34
                "CRTC_W" (atomic): range [0, INT32_MAX] = 800
                "CRTC_X" (atomic): signed range [INT32_MIN, INT32_MAX] = 0
                "CRTC_Y" (atomic): signed range [INT32_MIN, INT32_MAX] = 0
                "FB_ID" (atomic): object FB = 42
                "IN_FENCE_FD" (atomic): signed range [-1, INT32_MAX] = -1
                "IN_FORMATS" (immutable): blob
                    linear (0x0)
                        RGB888 (0x34324752)
                        XRGB8888 (0x34325258)
                        ARGB8888 (0x34325241)
                        RGB565 (0x36314752)
                "SRC_H" (atomic): range [0, UINT32_MAX] = 600
                "SRC_W" (atomic): range [0, UINT32_MAX] = 800
                "SRC_X" (atomic): range [0, UINT32_MAX] = 0
                "SRC_Y" (atomic): range [0, UINT32_MAX] = 0
                "type" (immutable): enum {"Overlay", "Primary", "Cursor"} = Primary
Comment 4 Zamundaaa 2021-11-16 13:02:22 UTC
Yes. The cursor plane is indeed missing; the MR will fix that
Comment 5 bluescreenavenger 2021-11-16 13:29:53 UTC
(In reply to Zamundaaa from comment #4)
> Yes. The cursor plane is indeed missing; the MR will fix that

I get a different crash with it now, lots of cursor stuff in the stack, rebuilding it with the Debug symbols again...
Comment 6 bluescreenavenger 2021-11-16 13:45:49 UTC
After trying the new MR

#0  0x00007f9ce36a9982 in QImage::setDevicePixelRatio(double) () from /opt/lib/x86_64-linux-gnu/libQt5Gui.so.5
No symbol table info available.
#1  0x00007f9cdcbf7c62 in KWin::DrmOutput::updateCursor (this=0x563036e6ad40) at /srcbuild/kwin/src/backends/drm/drm_output.cpp:144
        cursor = 0x563036b4dd70
        cursorImage = <incomplete type>
        c = 0x0
        p = {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f9ce3903e60, data = 0x7f9ce3903d80, 
              static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x0}}
#2  0x00007f9cdcbee0a0 in KWin::DrmBackend::updateCursor (this=0x5630369fd750) at /srcbuild/kwin/src/backends/drm/drm_backend.cpp:519
        output = 0x563036e6ad40
        __for_range = @0x5630369fd7d8: {d = 0x56303703a4b0}
        __for_begin = 0x56303703a4c8
        __for_end = 0x56303703a4d0
        cursor = <optimized out>
        success = true
        __PRETTY_FUNCTION__ = "void KWin::DrmBackend::updateCursor()"
#3  0x00007f9ce331af7c in ?? () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#4  0x00007f9ce4ecdbb5 in KWin::Cursors::currentCursorChanged (this=<optimized out>, _t1=<optimized out>)
    at /srcbuild/kwin/build/src/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:385
        _a = {0x0, 0x7ffe5eda60d8}
#5  0x00007f9ce331af7c in ?? () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#6  0x00007f9ce4f5f1a7 in operator() (__closure=0x5630371c3500) at /srcbuild/kwin/src/pointer_input.cpp:136
        cursor = 0x563036b4dd70
        this = 0x563036a8c120
        this = <optimized out>
        cursor = <optimized out>
#7  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::<lambda()> >::call (
    arg=<optimized out>, f=...) at /opt/include/QtCore/qobjectdefs_impl.h:146
No locals.
#8  QtPrivate::Functor<KWin::PointerInputRedirection::init()::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...)
    at /opt/include/QtCore/qobjectdefs_impl.h:256
No locals.
#9  QtPrivate::QFunctorSlotObject<KWin::PointerInputRedirection::init()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x5630371c34f0, r=<optimized out>, a=<optimized out>, ret=<optimized out>)
    at /opt/include/QtCore/qobjectdefs_impl.h:443
No locals.
#10 0x00007f9ce331af7c in ?? () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#11 0x00007f9ce4f60437 in KWin::PointerInputRedirection::init (this=0x563036a8c120) at /srcbuild/kwin/src/pointer_input.cpp:139
        setupMoveResizeConnection = {__this = <optimized out>}
        clients = {<QListSpecialMethods<KWin::AbstractClient*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {
                    _q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, 
                alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x563036a58630}, d = 0x563036a58630}}
#12 0x00007f9ce4f35c3d in KWin::InputRedirection::setupWorkspace (this=0x563036a54f70) at /srcbuild/kwin/src/input.cpp:2209
No locals.
#13 0x00007f9ce331af7c in ?? () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#14 0x00005630355e1d87 in KWin::ApplicationWayland::continueStartupWithScene (this=0x7ffe5eda6b98) at /srcbuild/kwin/src/main_wayland.cpp:180
        __PRETTY_FUNCTION__ = "void KWin::ApplicationWayland::continueStartupWithScene()"
#15 0x00007f9ce331af7c in ?? () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#16 0x00007f9ce4efa8d5 in KWin::Compositor::setupStart (this=0x563036b47e90) at /srcbuild/kwin/src/composite.cpp:311
        supportedCompositors = {d = 0x563036a1dbf0}
        userConfigIt = 0x563036a1dc08
        __PRETTY_FUNCTION__ = {<optimized out> <repeats 36 times>}
#17 0x00007f9ce4efb035 in KWin::WaylandCompositor::start (this=0x563036b47e90) at /srcbuild/kwin/src/composite.cpp:683
No locals.
#18 0x00007f9ce331439c in QObject::event(QEvent*) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#19 0x00007f9ce3b710c5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#20 0x00007f9ce32fdafa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#21 0x00007f9ce32fdd61 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#22 0x00007f9ce332caea in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#23 0x000056303567ecc8 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
No symbol table info available.
#24 0x00007f9ce32fb692 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#25 0x00007f9ce32ff873 in QCoreApplication::exec() () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#26 0x00005630355e042a in main (argc=<optimized out>, argv=<optimized out>) at /srcbuild/kwin/src/main_wayland.cpp:740
        userSignals = {__val = {2560, 0 <repeats 15 times>}}
        environment = {d = {d = 0x5630369db050}}
        a = {<KWin::ApplicationWaylandAbstract> = {<KWin::Application> = {<QApplication> = {<No data fields>}, static staticMetaObject = {d = {
                  superdata = {direct = 0x7f9ce3f11f60 <QApplication::staticMetaObject>}, 
                  stringdata = 0x7f9ce502e740 <qt_meta_stringdata_KWin__Application>, data = 0x7f9ce502e5e0 <qt_meta_data_KWin__Application>, 
                  static_metacall = 0x7f9ce4ed3d48 <KWin::Application::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, 
                  relatedMetaObjects = 0x0, extradata = 0x0}}, static crashes = 0, 
              m_eventFilters = {<QListSpecialMethods<QPointer<KWin::X11EventFilterContainer> >> = {<No data fields>}, {p = {
                    static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, 
                            static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, 
                    d = 0x7f9ce337e1d0 <QListData::shared_null>}, d = 0x7f9ce337e1d0 <QListData::shared_null>}}, 
              m_genericEventFilters = {<QListSpecialMethods<QPointer<KWin::X11EventFilterContainer> >> = {<No data fields>}, {p = {
                    static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, 
                            static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, 
                    d = 0x7f9ce337e1d0 <QListData::shared_null>}, d = 0x7f9ce337e1d0 <QListData::shared_null>}}, m_eventFilter = {
                d = 0x563036a10640}, m_configLock = false, m_config = {d = 0x563036a1f630}, m_kxkbConfig = {d = 0x563036a58630}, 
              m_operationMode = KWin::Application::OperationModeXwayland, m_x11Time = 0, m_rootWindow = 0, m_connection = 0x0, 
              m_defaultScreen = 0x0, m_useKActivities = true, m_platform = 0x5630369fd750, m_terminating = false, 
              m_isClosingX11Connection = false}, static staticMetaObject = {d = {superdata = {
                  direct = 0x7f9ce50f71e0 <KWin::Application::staticMetaObject>}, 
                stringdata = 0x7f9ce502e5a0 <qt_meta_stringdata_KWin__ApplicationWaylandAbstract>, 
                data = 0x7f9ce502e560 <qt_meta_data_KWin__ApplicationWaylandAbstract>, 
                static_metacall = 0x7f9ce4ed1e5a <KWin::ApplicationWaylandAbstract::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {
                direct = 0x7f9ce50f71a0 <KWin::ApplicationWaylandAbstract::staticMetaObject>}, 
              stringdata = 0x56303567f2e0 <qt_meta_stringdata_KWin__ApplicationWayland>, 
              data = 0x56303567f2a0 <qt_meta_data_KWin__ApplicationWayland>, 
              static_metacall = 0x5630355e1616 <KWin::ApplicationWayland::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, 
              relatedMetaObjects = 0x0, extradata = 0x0}}, m_startXWayland = true, m_applicationsToStart = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, static is_always_lock_free = true}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f9ce337e1d0 <QListData::shared_null>}, d = 0x7f9ce337e1d0 <QListData::shared_null>}}, <No data fields>}, m_inputMethodServerToStart = {static null = {<No data fields>}, d = 0x7f9ce337d720 <QArrayData::shared_null>}, m_environment = {d = {d = 0x5630369db050}}, m_sessionArgument = {static null = {<No data fields>}, d = 0x563036a1f210}, m_xwayland = 0x0, m_xwaylandListenFds = {d = 0x7f9ce337d720 <QArrayData::shared_null>}, m_xwaylandDisplay = {static null = {<No data fields>}, d = 0x7f9ce337d720 <QArrayData::shared_null>}, m_xwaylandXauthority = {static null = {<No data fields>}, d = 0x7f9ce337d720 <QArrayData::shared_null>}, m_settingsWatcher = {value = 0x0, d = 0x0}}
        availablePlugins = {d = 0x5630369fac90}
        hasPlugin = {__availablePlugins = @0x7ffe5eda69e8}
        hasSizeOption = <optimized out>
        hasOutputCountOption = 88
        hasX11Option = true
        hasVirtualOption = true
        hasWaylandOption = true
        hasFramebufferOption = true
        hasDrmOption = <optimized out>
        xwaylandOption = {d = {d = 0x563036a1c5c0}}
        waylandSocketOption = {d = {d = 0x563036a1bf80}}
        framebufferOption = {d = {d = 0x563036a23030}}
        framebufferDeviceOption = {d = {d = 0x563036a22ee0}}
        x11DisplayOption = {d = {d = 0x563036a1bf20}}
        waylandDisplayOption = {d = {d = 0x563036a22fd0}}
        virtualFbOption = {d = {d = 0x563036a1f550}}
        widthOption = {d = {d = 0x563036a1b9a0}}
        heightOption = {d = {d = 0x563036a1ceb0}}
        scaleOption = {d = {d = 0x563036a2d430}}
        outputCountOption = {d = {d = 0x563036a105b0}}
        waylandSocketFdOption = {d = {d = 0x563036a22e80}}
        xwaylandListenFdOption = {d = {d = 0x563036a1c320}}
        xwaylandDisplayOption = {d = {d = 0x5630369e54a0}}
        xwaylandXAuthorityOption = {d = {d = 0x563036a23240}}
        replaceOption = {d = {d = 0x563036a232e0}}
        parser = {d = 0x563036a1c6f0}
        drmOption = {d = {d = 0x563036a201b0}}
        inputMethodOption = {d = {d = 0x563036a201f0}}
        listBackendsOption = {d = {d = 0x563036a20350}}
        screenLockerOption = {d = {d = 0x563036a203f0}}
        noScreenLockerOption = {d = {d = 0x563036a20490}}
        noGlobalShortcutsOption = {d = {d = 0x563036a20590}}
        noActivitiesOption = {d = {d = 0x563036a206a0}}
        exitWithSessionOption = {d = {d = 0x563036a1f2e0}}
        pluginName = {static null = {<No data fields>}, d = 0x563035680b20 <KWin::s_drmPlugin::{lambda()#1}::operator()() const::qstring_literal>}
        initialWindowSize = {wd = <optimized out>, ht = <optimized out>}
        deviceIdentifier = {d = 0x7f9ce337d720 <QArrayData::shared_null>}
        outputCount = <optimized out>
        outputScale = <optimized out>
        pluginIt = 0x7ffe5eda6af8
        server = <optimized out>
        flags = {i = 1591372520}
        socketName = {static null = {<No data fields>}, d = 0x563036a1bdc0}
Comment 7 Zamundaaa 2021-11-16 15:17:24 UTC
Git commit 47d5d50bdfa81dcbdf6351e563d9c78eb30cfc61 by Xaver Hugl.
Committed on 16/11/2021 at 15:16.
Pushed by zamundaaa into branch 'master'.

backends/drm: don't assume we have a cursor plane

M  +6    -2    src/backends/drm/drm_pipeline.cpp

https://invent.kde.org/plasma/kwin/commit/47d5d50bdfa81dcbdf6351e563d9c78eb30cfc61
Comment 8 bluescreenavenger 2021-11-18 03:07:49 UTC
Rebuilding Master The commit gets me further, but I still get the above new stack trace
Comment 9 Bug Janitor Service 2021-11-18 13:30:01 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1684
Comment 10 bluescreenavenger 2021-11-18 13:59:22 UTC
That one works, it runs again!
Comment 11 Zamundaaa 2021-11-22 08:43:50 UTC
Git commit 3e24bc008a1c9b7f38aef15e07902e0d8213b80e by Xaver Hugl.
Committed on 22/11/2021 at 08:43.
Pushed by zamundaaa into branch 'master'.

backends/drm: force soft cursor if image creation fails

If the soft cursor is only set but not forced then KWin will try to update
cursors again, making it go into code paths that will crash.

M  +1    -1    src/backends/drm/drm_gpu.cpp

https://invent.kde.org/plasma/kwin/commit/3e24bc008a1c9b7f38aef15e07902e0d8213b80e
Comment 12 bluescreenavenger 2021-11-22 23:04:04 UTC
Thanks!