Bug 473664 - Cannot start a Wayland session in VirtualBox
Summary: Cannot start a Wayland session in VirtualBox
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: master
Platform: Arch Linux Other
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2023-08-23 01:19 UTC by Fushan Wen
Modified: 2023-08-23 12:32 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 Fushan Wen 2023-08-23 01:19:41 UTC
SUMMARY
Using git master, I can't login to a Plasma6 Wayland session.


STEPS TO REPRODUCE
1. Login to Plasma Wayland (Dev)
2. 
3. 

OBSERVED RESULT
Stay at sddm

EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: kwin at 361e2c3eba39c7c31b0b4f10fbe688407b1a349a
KDE Frameworks Version: 
Qt Version: 6.5.2

ADDITIONAL INFORMATION
(gdb) bt
#0  0x00007fb6de48e83c in  () at /usr/lib/libc.so.6
#1  0x00007fb6de43e668 in raise () at /usr/lib/libc.so.6
#2  0x00007fb6de4264b8 in abort () at /usr/lib/libc.so.6
#3  0x00007fb6deca80da in qt_assert(char const*, char const*, int) ()
    at /usr/lib/libQt6Core.so.6
#4  0x00007fb6deca8137 in qt_assert_x(char const*, char const*, char const*, int) ()
    at /usr/lib/libQt6Core.so.6
#5  0x00007fb6e23e4abd in KWin::RenderLoopPrivate::notifyFrameCompleted(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
    (this=0x561444f90870, timestamp=std::chrono::duration = { 45028124260219ns })
    at /home/qydw/kde/src/kwin/src/core/renderloop.cpp:132
#6  0x00007fb6e27f8e72 in KWin::DrmAbstractOutput::pageFlipped(std::chrono::duration<long, std::ratio<1l, 1000000000l> >) const
    (this=0x561444d0edf0, timestamp=std::chrono::duration = { 45028124260219ns })
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_abstract_output.cpp:36
#7  0x00007fb6e286cd3d in KWin::DrmPipeline::pageFlipped(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
    (this=0x561444b2a700, timestamp=std::chrono::duration = { 45028124260219ns })
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_pipeline.cpp:426
#8  0x00007fb6e280955e in KWin::DrmLegacyCommit::pageFlipped(std::chrono::duration<long, std::ratio<1l, 1000000000l> >) const
    (this=0x561444f8ea70, timestamp=std::chrono::duration = { 45028124260219ns })
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_commit.cpp:145
#9  0x00007fb6e280942b in KWin::DrmLegacyCommit::doModeset(KWin::DrmConnector*, KWin::DrmConnectorMode*) (this=0x561444f8ea70, connector=0x561444f77450, mode=0x561444f6fa10)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_commit.cpp:129
#10 0x00007fb6e2873cfe in KWin::DrmPipeline::legacyModeset() (this=0x561444b2a700)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_pipeline_legacy.cpp:61
#11 0x00007fb6e2874432 in KWin::DrmPipeline::applyPendingChangesLegacy() (this=0x561444b2a700)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_pipeline_legacy.cpp:121
#12 0x00007fb6e2873e67 in KWin::DrmPipeline::commitPipelinesLegacy(QList<KWin::DrmPipeline*> const&, KWin::DrmPipeline::CommitMode)
    (pipelines=..., mode=KWin::DrmPipeline::CommitMode::TestAllowModeset)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_pipeline_legacy.cpp:72
#13 0x00007fb6e286af6c in KWin::DrmPipeline::commitPipelines(QList<KWin::DrmPipeline*> const&, KWin::DrmPipeline::CommitMode, QList<KWin::DrmObject*> const&)
    (pipelines=..., mode=KWin::DrmPipeline::CommitMode::TestAllowModeset, unusedObjects=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_pipeline.cpp:104
#14 0x00007fb6e2843e5c in KWin::DrmGpu::testPipelines() (this=0x561444ba1dc0)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:463
#15 0x00007fb6e28436a5 in KWin::DrmGpu::checkCrtcAssignment(QList<KWin::DrmConnector*>, QList<KWin::DrmCrtc*> const&) (this=0x561444ba1dc0, connectors=..., crtcs=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:382
#16 0x00007fb6e284375b in KWin::DrmGpu::checkCrtcAssignment(QList<KWin::DrmConnector*>, QList<KWin::DrmCrtc*> const&) (this=0x561444ba1dc0, connectors=..., crtcs=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:389
#17 0x00007fb6e284375b in KWin::DrmGpu::checkCrtcAssignment(QList<KWin::DrmConnector*>, QList<KWin::DrmCrtc*> const&) (this=0x561444ba1dc0, connectors=..., crtcs=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:389
#18 0x00007fb6e284375b in KWin::DrmGpu::checkCrtcAssignment(QList<KWin::DrmConnector*>, QList<KWin::DrmCrtc*> const&) (this=0x561444ba1dc0, connectors=..., crtcs=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:389
#19 0x00007fb6e284375b in KWin::DrmGpu::checkCrtcAssignment(QList<KWin::DrmConnector*>, QList<KWin::DrmCrtc*> const&) (this=0x561444ba1dc0, connectors=..., crtcs=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:389
#20 0x00007fb6e284375b in KWin::DrmGpu::checkCrtcAssignment(QList<KWin::DrmConnector*>, QList<KWin::DrmCrtc*> const&) (this=0x561444ba1dc0, connectors=..., crtcs=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:389
#21 0x00007fb6e284375b in KWin::DrmGpu::checkCrtcAssignment(QList<KWin::DrmConnector*>, QList<KWin::DrmCrtc*> const&) (this=0x561444ba1dc0, connectors=..., crtcs=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:389
#22 0x00007fb6e284375b in KWin::DrmGpu::checkCrtcAssignment(QList<KWin::DrmConnector*>, QList<KWin::DrmCrtc*> const&) (this=0x561444ba1dc0, connectors=..., crtcs=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:389
#23 0x00007fb6e2843a1a in KWin::DrmGpu::checkCrtcAssignment(QList<KWin::DrmConnector*>, QList<KWin::DrmCrtc*> const&) (this=0x561444ba1dc0, connectors=..., crtcs=...)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:417
#24 0x00007fb6e2843d62 in KWin::DrmGpu::testPendingConfiguration() (this=0x561444ba1dc0)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:454
#25 0x00007fb6e2842d63 in KWin::DrmGpu::updateOutputs() (this=0x561444ba1dc0)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_gpu.cpp:320
#26 0x00007fb6e27face3 in KWin::DrmBackend::updateOutputs() (this=0x561444b91980)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_backend.cpp:273
#27 0x00007fb6e27fb159 in KWin::DrmBackend::sceneInitialized() (this=0x561444b91980)
    at /home/qydw/kde/src/kwin/src/backends/drm/drm_backend.cpp:310
#28 0x0000561443c61171 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::OutputBackend::*)()>::call(void (KWin::OutputBackend::*)(), KWin::OutputBackend*, void**) (f=&virtual table offset 200, o=0x561444b91980, arg=0x7ffe2699ced8)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:135
#29 0x0000561443c6090c in QtPrivate::FunctionPointer<void (KWin::OutputBackend::*)()>::call<QtPrivate::List<>, void>(void (KWin::OutputBackend::*)(), KWin::OutputBackend*, void**)
    (f=&virtual table offset 200, o=0x561444b91980, arg=0x7ffe2699ced8)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:172
#30 0x0000561443c5fb69 in QtPrivate::QSlotObject<void (KWin::OutputBackend::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x561444d30540, r=0x561444b91980, a=0x7ffe2699ced8, ret=0x0)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:384
#31 0x00007fb6ded9134a in  () at /usr/lib/libQt6Core.so.6
#32 0x00007fb6e23acac1 in KWin::Compositor::sceneCreated() (this=0x561444d1dc80)
    at /home/qydw/kde/build/kwin/src/kwin_autogen/include/moc_composite.cpp:263
#33 0x00007fb6e23a785d in KWin::Compositor::setupStart() (this=0x561444d1dc80)
    at /home/qydw/kde/src/kwin/src/composite.cpp:324
#34 0x00007fb6e23aa2ec in KWin::WaylandCompositor::start() (this=0x561444d1dc80)
    at /home/qydw/kde/src/kwin/src/composite.cpp:770
#35 0x00007fb6e23bd619 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::Compositor::*)()>::call(void (KWin::Compositor::*)(), KWin::Compositor*, void**) (f=&virtual KWin::Compositor::start(), o=0x561444d1dc80, arg=0x561444d2d228)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:135
#36 0x00007fb6e23ba81d in QtPrivate::FunctionPointer<void (KWin::Compositor::*)()>::call<QtPrivate::List<>, void>(void (KWin::Compositor::*)(), KWin::Compositor*, void**)
    (f=&virtual KWin::Compositor::start(), o=0x561444d1dc80, arg=0x561444d2d228)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:172
#37 0x00007fb6e23b74c5 in QtPrivate::QSlotObject<void (KWin::Compositor::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x561444d2d1b0, r=0x561444d1dc80, a=0x561444d2d228, ret=0x0)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:384
#38 0x00007fb6ded7d147 in QObject::event(QEvent*) () at /usr/lib/libQt6Core.so.6
#39 0x00007fb6dfd7136b in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
    at /usr/lib/libQt6Widgets.so.6
#40 0x00007fb6ded3b718 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
    at /usr/lib/libQt6Core.so.6
#41 0x00007fb6ded3ba9b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt6Core.so.6
#42 0x00007fb6dee6f9af in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#43 0x00007fb6df7d9052 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Gui.so.6
#44 0x00007fb6ded45623 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/libQt6Core.so.6
#45 0x00007fb6ded3f1f8 in QCoreApplication::exec() () at /usr/lib/libQt6Core.so.6
#46 0x0000561443c5cc0c in main(int, char**) (argc=14, argv=0x7ffe2699dbc8)
    at /home/qydw/kde/src/kwin/src/main_wayland.cpp:613
Comment 1 Bug Janitor Service 2023-08-23 11:29:40 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4357
Comment 2 Zamundaaa 2023-08-23 12:32:09 UTC
Git commit a800b54a13d3872b37b5f2ddd3cd381d4f183a30 by Xaver Hugl.
Committed on 23/08/2023 at 14:15.
Pushed by zamundaaa into branch 'master'.

backends/drm: fix legacy modesets

There's no pending frame on modesets with legacy, so calling pageFlipped crashes KWin

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

https://invent.kde.org/plasma/kwin/-/commit/a800b54a13d3872b37b5f2ddd3cd381d4f183a30