https://bugs.kde.org/show_bug.cgi?id=500139

            Bug ID: 500139
           Summary: kwin_wayland crash when connecting a second external
                    monitor on a thunderbolt dock port
    Classification: Plasma
           Product: kwin
           Version: 6.3.0
          Platform: Arch Linux
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: wayland-generic
          Assignee: kwin-bugs-n...@kde.org
          Reporter: smichak...@gmail.com
  Target Milestone: ---

Created attachment 178406
  --> https://bugs.kde.org/attachment.cgi?id=178406&action=edit
Backtrace and logs

SUMMARY
kwin_wayland crash when connecting a second external monitor on a thunderbolt
dock port

STEPS TO REPRODUCE
1. Boot with a single monitor connected to laptop dock.
2. Login to a wayland session from SDDM.
3. Connect another display to the HDMI output on the dock.

OBSERVED RESULT
Black screen and going back to console mode. Observing the system logs reveals
some failures in kwin_core and kwin_wayland afterwards kwin_wayland appears to
crash. 

EXPECTED RESULT
New monitor is identified by the system and becomes usable via display
settings.

SOFTWARE/OS VERSIONS
Linux: Arch Linux
Kernel Version: 6.13.2-arch1-1 (64 bit)
KDE Plasma Version: 6.3.0
KDE Frameworks Version: 6.10.0
Qt Version: 6.8.2

ADDITIONAL INFORMATION
I tested the dock with a Windows 11 laptop and it seems to work fine. Backtrace
and relevant debug level logs are attached.

BACKTRACE (also attached):
#0  __pthread_kill_implementation (threadid=<optimized out>,
signo=signo@entry=11, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO
(ret) : 0;
[Current thread is 1 (Thread 0x7b93137cca00 (LWP 1899))]
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>,
signo=signo@entry=11, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
#1  0x00007b93198a56d3 in __pthread_kill_internal (threadid=<optimized out>,
signo=11) at pthread_kill.c:89
#2  0x00007b931984bba0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007b931d0e42a1 in KCrash::defaultCrashHandler (sig=11)
    at /usr/src/debug/kcrash/kcrash-6.10.0/src/kcrash.cpp:596
#4  <signal handler called>
#5  KWin::DrmPipeline::prepareAtomicPresentation
(this=this@entry=0x7b92f8003bd0, commit=0x569c93fe00e0,
    frame=std::shared_ptr<KWin::OutputFrame> (use count 1, weak count 0) =
{...})
    at /usr/src/debug/kwin/kwin-6.3.0/src/backends/drm/drm_property.cpp:153
#6  0x00007b931cc3a7eb in KWin::DrmPipeline::present (this=0x7b92f8003bd0,
    frame=std::shared_ptr<KWin::OutputFrame> (use count 1, weak count 0) =
{...})
    at /usr/include/c++/14.2.1/bits/unique_ptr.h:193
#7  KWin::DrmPipeline::present (this=this@entry=0x7b92f8003bd0,
    frame=std::shared_ptr<KWin::OutputFrame> (use count 1, weak count 0) =
{...})
    at /usr/src/debug/kwin/kwin-6.3.0/src/backends/drm/drm_pipeline.cpp:51
#8  0x00007b931cc3c509 in KWin::DrmOutput::present (this=0x569c94191730,
    frame=std::shared_ptr<KWin::OutputFrame> (use count 1, weak count 0) =
{...})
    at /usr/src/debug/kwin/kwin-6.3.0/src/backends/drm/drm_output.cpp:325
#9  0x00007b931c97ae80 in KWin::WaylandCompositor::composite
(this=0x569c918c9d20,
    renderLoop=<optimized out>) at
/usr/src/debug/kwin/kwin-6.3.0/src/compositor_wayland.cpp:436
#10 0x00007b9319fb1a49 in QtPrivate::QSlotObjectBase::call (this=<optimized
out>, r=<optimized out>,
    a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized
out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486
#11 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>,
argv=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4115
#12 0x00007b931c990835 in KWin::RenderLoop::frameRequested (this=<optimized
out>, _t1=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--
    at
/usr/src/debug/kwin/build/src/kwin_autogen/include/moc_renderloop.cpp:211
#13 0x00007b931c995033 in KWin::RenderLoopPrivate::dispatch
(this=0x569c94a18b50)
    at /usr/src/debug/kwin/kwin-6.3.0/src/core/renderloop.cpp:190
#14 0x00007b9319fb1a49 in QtPrivate::QSlotObjectBase::call (this=<optimized
out>, r=<optimized out>,
    a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized
out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486
#15 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>,
argv=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4115
#16 0x00007b9319fbaa75 in QTimer::timeout (this=0x569c94a18d90, _t1=...)
    at
/usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qtimer.cpp:223
#17 QTimer::timerEvent (e=<optimized out>, this=0x569c94a18d90)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:285
#18 QTimer::timerEvent (this=0x569c94a18d90, e=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:279
#19 0x00007b9319fa2ef9 in QObject::event (this=0x569c94a18d90,
e=0x7fff79b8b070)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1393
#20 0x00007b931b0ff0ca in QApplicationPrivate::notify_helper (this=<optimized
out>, receiver=0x569c94a18d90,
    e=0x7fff79b8b070) at
/usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3296
#21 0x00007b9319f55b00 in QCoreApplication::notifyInternal2
(receiver=0x569c94a18d90, event=0x7fff79b8b070)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1172
#22 0x00007b931a0d5aff in QCoreApplication::sendEvent (receiver=<optimized
out>, event=0x7fff79b8b070)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1612
#23 QTimerInfoList::activateTimers (this=<optimized out>)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:426
#24 0x00007b931a0de408 in QEventDispatcherUNIXPrivate::activateTimers
(this=0x569c915dc450)
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:199
#25 QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...,
flags@entry=...)
--Type <RET> for more, q to quit, c to continue without paging--
    at
/usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:475
#26 0x00007b931ac61d93 in QUnixEventDispatcherQPA::processEvents
(this=<optimized out>, flags=...)
    at
/usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#27 0x00007b9319f606a6 in QEventLoop::processEvents (this=0x7fff79b8b270,
flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:103
#28 QEventLoop::exec (this=0x7fff79b8b270, flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:185
#29 0x00007b9319f591d6 in QCoreApplication::exec ()
    at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:74
#30 0x00007b931b0faf9a in QApplication::exec ()
    at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2564
#31 0x0000569c90f9207f in main (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/kwin/kwin-6.3.0/src/main_wayland.cpp:622

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to