Bug 446804 - kwin_wayland crashes on simpledrm on master after recent changes
Summary: kwin_wayland crashes on simpledrm on master after recent changes
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: platform-drm (show other bugs)
Version: git master
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-12-10 21:05 UTC by bluescreenavenger
Modified: 2021-12-13 10:05 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: https://invent.kde.org/plasma/kwin/-/commit/37c3e0d158c32a0fe51c3991f94af8f5247690bc


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description bluescreenavenger 2021-12-10 21:05:21 UTC
If I was to guess, I think it is caused by 9537ea6d16370c4ca0289d43e559bbcc2bfdd58c

Below is the stacktrace I get:

#0  0x00007f48bd351538 in QFlags<KWin::DrmPlane::Transformation>::operator& (mask=<optimized out>, mask@entry=1, 
    this=<optimized out>) at /opt/include/QtCore/qflags.h:69
No locals.
#1  KWin::DrmPlane::setTransformation (this=0x0, t=t@entry=...)
    at /srcbuild/kwin/src/backends/drm/drm_object_plane.cpp:127
No locals.
#2  0x00007f48bd35ff4a in KWin::DrmPipeline::prepareModeset (this=this@entry=0x56514313ca90)
    at /srcbuild/kwin/src/backends/drm/drm_pipeline.cpp:385
        mode = <optimized out>
#3  0x00007f48bd35ff7d in KWin::DrmPipeline::populateAtomicValues (this=0x56514313ca90, 
    req=req@entry=0x5651432f3930, flags=@0x7ffc4418d334: 0)
    at /srcbuild/kwin/src/backends/drm/drm_pipeline.cpp:185
No locals.
#4  0x00007f48bd36038e in KWin::DrmPipeline::commitPipelinesAtomic (pipelines=..., 
    mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, unusedObjects=...)
    at /srcbuild/kwin/src/backends/drm/drm_pipeline.cpp:135
        pipeline = <optimized out>
        __for_range = @0x565142d2ce88: {d = 0x5651432f0630}
        __for_begin = <optimized out>
        __for_end = 0x5651432f0650
        req = 0x5651432f3930
        __PRETTY_FUNCTION__ = "static bool KWin::DrmPipeline::commitPipelinesAtomic(const QVector<KWin::DrmPipeline*>&, KWin::DrmPipeline::CommitMode, const QVector<KWin::DrmObject*>&)"
        flags = 0
        failed = @0x7ffc4418d350: {__pipelines = {d = 0x5651432f0630}, __req = 0x5651432f3930, 
          __flags = @0x7ffc4418d334, __unusedObjects = {d = 0x5651432f41f0}}
        modeset = <optimized out>
#5  0x00007f48bd360887 in KWin::DrmPipeline::commitPipelines (pipelines=..., 
    mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, unusedObjects=...)
    at /srcbuild/kwin/src/backends/drm/drm_pipeline.cpp:103
No locals.
#6  0x00007f48bd35a58f in KWin::DrmGpu::checkCrtcAssignment (this=this@entry=0x565142d2ce10, connectors=..., 
    crtcs=...) at /srcbuild/kwin/src/backends/drm/drm_gpu.cpp:347
        inactivePipelines = {d = 0x7f48c3af2720 <QArrayData::shared_null>}
        unused = {d = 0x5651432f41f0}
        test = <optimized out>
        __PRETTY_FUNCTION__ = "bool KWin::DrmGpu::checkCrtcAssignment(QVector<KWin::DrmConnector*>, QVector<KWin::DrmCrtc*>)"
        connector = <optimized out>
        pipeline = <optimized out>
        encoders = {d = 0x7ffc4418d4e0}
#7  0x00007f48bd35a7c1 in KWin::DrmGpu::checkCrtcAssignment (this=this@entry=0x565142d2ce10, connectors=..., crtcs=...) at /srcbuild/kwin/src/backends/drm/drm_gpu.cpp:382
        crtcsLeft = {d = 0x5651432f41a0}
        crtc = @0x5651432f4168: 0x565142da05d0
        __for_range = @0x7ffc4418d578: {d = 0x5651432f4150}
        __for_begin = 0x5651432f4168
        __for_end = 0x5651432f4170
        enc = {d = <optimized out>}
        encoder = @0x5651432f3818: 35
        __for_range = @0x7ffc4418d4d8: {d = 0x5651432f3800}
        __for_begin = 0x5651432f3818
        __for_end = 0x5651432f381c
        __PRETTY_FUNCTION__ = "bool KWin::DrmGpu::checkCrtcAssignment(QVector<KWin::DrmConnector*>, QVector<KWin::DrmCrtc*>)"
        connector = 0x7ffc4418d4e0
        pipeline = 0x56514313ca90
        encoders = {d = 0x5651432f3800}
#8  0x00007f48bd35a9df in KWin::DrmGpu::testPendingConfiguration (this=this@entry=0x565142d2ce10) at /srcbuild/kwin/src/backends/drm/drm_gpu.cpp:413
        connectors = {d = 0x5651432f40b0}
        crtcs = {d = 0x565142d88960}
#9  0x00007f48bd35b2b6 in KWin::DrmGpu::updateOutputs (this=this@entry=0x565142d2ce10) at /srcbuild/kwin/src/backends/drm/drm_gpu.cpp:309
        resources = {d = <optimized out>}
        __PRETTY_FUNCTION__ = "bool KWin::DrmGpu::updateOutputs()"
        lessees = <optimized out>
        removedConnectors = {d = 0x7f48c3af2720 <QArrayData::shared_null>}
#10 0x00007f48bd349abb in KWin::DrmBackend::updateOutputs (this=0x565142cd50d0) at /srcbuild/kwin/src/backends/drm/drm_backend.cpp:327
        gpu = 0x565142d2ce10
        it = 0x565142d96a28
        oldOutputs = {d = 0x7f48c3af2720 <QArrayData::shared_null>}
        __PRETTY_FUNCTION__ = "void KWin::DrmBackend::updateOutputs()"
#11 0x00007f48c3a8ff86 in ?? () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#12 0x00007f48c567ae75 in KWin::Compositor::setupStart (this=0x565142df9220) at /srcbuild/kwin/src/composite.cpp:311
        supportedCompositors = {d = 0x565142e6ca40}
        userConfigIt = 0x565142e6ca58
        __PRETTY_FUNCTION__ = {<optimized out> <repeats 36 times>}
#13 0x00007f48c567b5d5 in KWin::WaylandCompositor::start (this=0x565142df9220) at /srcbuild/kwin/src/composite.cpp:683
No locals.
#14 0x00007f48c3a893a6 in QObject::event(QEvent*) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#15 0x00007f48c42e60c5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#16 0x00007f48c3a72b04 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#17 0x00007f48c3a72d6b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#18 0x00007f48c3aa1af4 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#19 0x0000565141d9caac in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
No symbol table info available.
#20 0x00007f48c3a7069c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#21 0x00007f48c3a7487d in QCoreApplication::exec() () from /opt/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#22 0x0000565141cfe463 in main (argc=<optimized out>, argv=<optimized out>) at /srcbuild/kwin/src/main_wayland.cpp:737
        userSignals = {__val = {2560, 0 <repeats 15 times>}}
        environment = {d = {d = 0x565142c9a4a0}}
        a = {<KWin::ApplicationWaylandAbstract> = {<KWin::Application> = {<QApplication> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7f48c4686f60 <QApplication::staticMetaObject>}, stringdata = 0x7f48c57aec00 <qt_meta_stringdata_KWin__Application>, data = 0x7f48c57aeaa0 <qt_meta_data_KWin__Application>, static_metacall = 0x7f48c5653f74 <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 = 0x7f48c3af31d0 <QListData::shared_null>}, d = 0x7f48c3af31d0 <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 = 0x7f48c3af31d0 <QListData::shared_null>}, d = 0x7f48c3af31d0 <QListData::shared_null>}}, m_eventFilter = {d = 0x565142cc2f90}, m_configLock = false, m_config = {d = 0x565142cebd70}, m_kxkbConfig = {d = 0x565142d13c70}, m_operationMode = KWin::Application::OperationModeXwayland, m_x11Time = 0, m_rootWindow = 0, m_connection = 0x0, m_defaultScreen = 0x0, m_useKActivities = true, m_platform = 0x565142cd50d0, m_terminating = false, m_isClosingX11Connection = false}, static staticMetaObject = {d = {superdata = {direct = 0x7f48c5877300 <KWin::Application::staticMetaObject>}, stringdata = 0x7f48c57aea60 <qt_meta_stringdata_KWin__ApplicationWaylandAbstract>, data = 0x7f48c57aea20 <qt_meta_data_KWin__ApplicationWaylandAbstract>, static_metacall = 0x7f48c5651f3e <KWin::ApplicationWaylandAbstract::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f48c58772c0 <KWin::ApplicationWaylandAbstract::staticMetaObject>}, stringdata = 0x565141d9d2e0 <qt_meta_stringdata_KWin__ApplicationWayland>, data = 0x565141d9d2a0 <qt_meta_data_KWin__ApplicationWayland>, static_metacall = 0x565141cffb16 <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 = 0x7f48c3af31d0 <QListData::shared_null>}, d = 0x7f48c3af31d0 <QListData::shared_null>}}, <No data fields>}, m_inputMethodServerToStart = {static null = {<No data fields>}, d = 0x7f48c3af2720 <QArrayData::shared_null>}, m_environment = {d = {d = 0x565142c9a4a0}}, m_sessionArgument = {static null = {<No data fields>}, d = 0x7f48c3af2720 <QArrayData::shared_null>}, m_xwayland = 0x0, m_xwaylandListenFds = {d = 0x565142d13a40}, m_xwaylandDisplay = {static null = {<No data fields>}, d = 0x565142d06c20}, m_xwaylandXauthority = {static null = {<No data fields>}, d = 0x565142cd9220}, m_settingsWatcher = {value = 0x0, d = 0x0}}
        availablePlugins = {d = 0x565142cc4280}
        hasPlugin = {__availablePlugins = @0x7ffc4418dc28}
        hasSizeOption = <optimized out>
        hasOutputCountOption = 56
        hasX11Option = true
        hasVirtualOption = true
        hasWaylandOption = true
        hasFramebufferOption = true
        hasDrmOption = <optimized out>
        xwaylandOption = {d = {d = 0x565142cd7a70}}
        waylandSocketOption = {d = {d = 0x565142cd5eb0}}
        framebufferOption = {d = {d = 0x565142cd5e20}}
        framebufferDeviceOption = {d = {d = 0x565142cd5ef0}}
        x11DisplayOption = {d = {d = 0x565142cd96b0}}
        waylandDisplayOption = {d = {d = 0x565142cd5d90}}
        virtualFbOption = {d = {d = 0x565142cd9650}}
        widthOption = {d = {d = 0x565142cc3570}}
        heightOption = {d = {d = 0x565142cd4f90}}
        scaleOption = {d = {d = 0x565142cc3130}}
        outputCountOption = {d = {d = 0x565142cc33b0}}
        waylandSocketFdOption = {d = {d = 0x565142cd9720}}
        xwaylandListenFdOption = {d = {d = 0x565142ca9180}}
        xwaylandDisplayOption = {d = {d = 0x565142cd6da0}}
        xwaylandXAuthorityOption = {d = {d = 0x565142cd6200}}
        replaceOption = {d = {d = 0x565142cd6270}}
        parser = {d = 0x565142cd4970}
        drmOption = {d = {d = 0x565142cd8ea0}}
        inputMethodOption = {d = {d = 0x565142cd8f40}}
        listBackendsOption = {d = {d = 0x565142cd90a0}}
        screenLockerOption = {d = {d = 0x565142cd9140}}
        noScreenLockerOption = {d = {d = 0x565142cd91e0}}
        noGlobalShortcutsOption = {d = {d = 0x565142cd92e0}}
        noActivitiesOption = {d = {d = 0x565142cd93f0}}
        exitWithSessionOption = {d = {d = 0x565142cd8be0}}
        pluginName = {static null = {<No data fields>}, d = 0x565141d9eb20 <KWin::s_drmPlugin::{lambda()#1}::operator()() const::qstring_literal>}
        initialWindowSize = {wd = <optimized out>, ht = <optimized out>}
        deviceIdentifier = {d = 0x7f48c3af2720 <QArrayData::shared_null>}
        outputCount = <optimized out>
        outputScale = <optimized out>
        pluginIt = 0x7ffc4418dd38
        server = <optimized out>
        flags = {i = 1142480168}
        socketName = {static null = {<No data fields>}, d = 0x565142d06b30}