Bug 485182 - kwin_wayland crashes on resume from suspend in KWin::DrmGpu::activeChanged() when external monitor is connected
Summary: kwin_wayland crashes on resume from suspend in KWin::DrmGpu::activeChanged() ...
Status: RESOLVED DUPLICATE of bug 483008
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: 6.0.3
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-07 12:16 UTC by kde
Modified: 2024-04-10 11:34 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Complete backtrace (exceeds comment limit) (76.67 KB, text/plain)
2024-04-07 15:29 UTC, kde
Details

Note You need to log in before you can comment on or make changes to this bug.
Description kde 2024-04-07 12:16:45 UTC
SUMMARY
My laptop has an integrated AMD Radeon Graphics card and a discrete NVIDIA card. When I have an external monitor plugged in and I resume from suspend, kwin_wayland crashes. Without the external monitor plugged in, resume works and there are no observed crashes. This has been the case for all versions of Plasma 6 so far but did not affect me on Plasma 5.

STEPS TO REPRODUCE
1. Plug in an external monitor (Note that plugging in the extranal monitor means that the NVIDIA card is used. The laptop display uses the integrated Radeon).
2. Suspend
3. Resume from suspend

OBSERVED RESULT
kwin_wayland crashes, Firefox crashes, yakuake and kmail have errors but do not crash.

SOFTWARE/OS VERSIONS
KDE Plasma: 6.0.3
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.3
Kernel: 6.8.4
NVIDIA driver: 550.67

ADDITIONAL INFORMATION
Backtrace:
#0  std::__atomic_base<QObjectPrivate::Connection*>::load (__m=std::memory_order_acquire, this=0x71) at /usr/include/c++/13.2.1/atomic:576
#1  std::atomic<QObjectPrivate::Connection*>::load (__m=std::memory_order_acquire, this=0x71) at /usr/include/c++/13.2.1/atomic:577
#2  QAtomicOps<QObjectPrivate::Connection*>::loadAcquire<QObjectPrivate::Connection*> (_q_value=<error reading variable: Cannot access memory at address 0x71>)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/thread/qatomic_cxx11.h:213
#3  QBasicAtomicPointer<QObjectPrivate::Connection>::loadAcquire (this=0x71) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/thread/qbasicatomic.h:179
#4  QObjectPrivate::maybeSignalConnected (this=<optimized out>, signalIndex=3) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qobject.cpp:484
#5  0x00007663dab913f0 in doActivate<false> (sender=0x5bac1da5ddc0, signal_index=3, argv=0x7ffe30447a30) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qobject.cpp:3941
#6  0x00007663dd5e9447 in KWin::DrmGpu::activeChanged (_t1=<optimized out>, this=0x5bac1da5ddc0) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_drm_gpu.cpp:333
#7  KWin::DrmGpu::setActive (this=0x5bac1da5ddc0, active=true) at /usr/src/debug/kwin/kwin-6.0.3.1/src/backends/drm/drm_gpu.cpp:736
#8  0x00007663dab91599 in QtPrivate::QSlotObjectBase::call (a=0x7ffe30447b70, r=0x7663d00099a0, this=0x5bac1bd79f20, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qobjectdefs_impl.h:433
#9  doActivate<false> (sender=0x5bac1bd840a0, signal_index=5, argv=0x7ffe30447b70) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qobject.cpp:4039
#10 0x00007663dd37ee37 in KWin::Session::deviceResumed (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_session.cpp:236
#11 0x00007663dd38ba1b in KWin::LogindSession::handleResumeDevice (fileDescriptor=..., minor=<optimized out>, major=<optimized out>, this=0x5bac1bd840a0)
    at /usr/src/debug/kwin/kwin-6.0.3.1/src/core/session_logind.cpp:330
#12 KWin::LogindSession::qt_static_metacall (_o=0x5bac1bd840a0, _id=<optimized out>, _a=0x7ffe30447de8, _c=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_session_logind.cpp:176
#13 0x00007663dd38bc51 in KWin::LogindSession::qt_static_metacall (_a=0x7ffe30447de8, _id=0, _c=QMetaObject::InvokeMetaMethod, _o=0x5bac1bd840a0)
    at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_session_logind.cpp:170
#14 KWin::LogindSession::qt_metacall (this=0x5bac1bd840a0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7ffe30447de8) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_session_logind.cpp:216
#15 0x00007663dba550ce in QDBusConnectionPrivate::deliverCall (this=0x7663d0009500, object=0x5bac1bd840a0, msg=..., metaTypes=<optimized out>, slotIdx=9)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/dbus/qdbusintegrator.cpp:977
#16 0x00007663dab7cbb7 in QObject::event (this=0x5bac1bd840a0, e=0x7663d002c7a0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qobject.cpp:1437
#17 0x00007663dbcf437b in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5bac1bd840a0, e=0x7663d002c7a0)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/widgets/kernel/qapplication.cpp:3296
#18 0x00007663dab3a198 in QCoreApplication::notifyInternal2 (receiver=0x5bac1bd840a0, event=event@entry=0x7663d002c7a0)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qcoreapplication.cpp:1121
#19 0x00007663dab3a51b in QCoreApplication::sendEvent (event=0x7663d002c7a0, receiver=<optimized out>) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qcoreapplication.cpp:1539
#20 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5bac1bca7250) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qcoreapplication.cpp:1901
#21 0x00007663dac9fb8f in QEventDispatcherUNIX::processEvents (this=0x5bac1bd19c10, flags=flags@entry=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qeventdispatcher_unix.cpp:432
#22 0x00007663db5b3472 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#23 0x00007663dab446ee in QEventLoop::processEvents (flags=..., this=0x7ffe30448350) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qeventloop.cpp:100
#24 QEventLoop::exec (this=0x7ffe30448350, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/kernel/qeventloop.cpp:182
#25 0x00007663dab3cc38 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/corelib/global/qflags.h:74
#26 0x00007663dbcf0efa in QApplication::exec () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.3/src/widgets/kernel/qapplication.cpp:2574
#27 0x00005bac19c7ddee in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-6.0.3.1/src/main_wayland.cpp:609
Comment 1 kde 2024-04-07 15:29:18 UTC
Created attachment 168259 [details]
Complete backtrace (exceeds comment limit)
Comment 2 Zamundaaa 2024-04-10 11:34:09 UTC

*** This bug has been marked as a duplicate of bug 483008 ***