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

[email protected] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dontmailmeschrott+kdebugtra
                   |                            |[email protected]

--- Comment #2 from [email protected] ---
not the same user but i have the same problem (plasmalogin crashes on boot if
usb-c+displaylink dock is plugged in).
stacktrace for me is 24 frames long without debug symbols, 32 with debug
symbols:

---
#0  __pthread_kill_implementation (no_tid=0, signo=11, threadid=<optimized
out>) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=11, threadid=<optimized out>) at
./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=11) at
./nptl/pthread_kill.c:89
#3  0x00007affa4c4527e in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#4  0x00007affa880c926 in KCrash::defaultCrashHandler (sig=11) at
/usr/src/kf6-kcrash-6.31.0-0zneon+24.04+noble+release+build43/src/kcrash.cpp:653
#5  <signal handler called>
#6  KWin::RenderDevice::deviceId (this=0x0) at
/usr/src/kwin-4:6.8.2-0zneon+24.04+noble+release+build115/src/core/renderdevice.cpp:129
#7  0x00007affa801291f in KWin::prepareDirectScanout (view=0x58b67a0985d0,
logicalOutput=<optimized out>, backendOutput=<optimized out>, frame=...) at
/usr/src/kwin-4:6.8.2-0zneon+24.04+noble+release+build115/src/compositor.cpp:481
#8  KWin::Compositor::setupLayers (this=this@entry=0x58b67932d000,
sceneView=sceneView@entry=0x58b679eedb50, logicalOutput=0x58b679d496d0,
backendOutput=0x58b67933d5d0, outputLayers=..., assignments=std::unordered_map
with 1 element = {...}, frame=std::shared_ptr<KWin::OutputFrame> (use count 1,
weak count 0) = {...}, toUpdate=std::unordered_set with 1 element = {...}) at
/usr/src/kwin-4:6.8.2-0zneon+24.04+noble+release+build115/src/compositor.cpp:802
#9  0x00007affa801407c in KWin::Compositor::composite (this=<optimized out>,
renderLoop=<optimized out>) at
/usr/src/kwin-4:6.8.2-0zneon+24.04+noble+release+build115/src/compositor.cpp:940
#10 0x00007affa58b01dd in QtPrivate::QSlotObjectBase::call (a=<optimized out>,
r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized
out>, a=<optimized out>) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qobjectdefs_impl.h:462
#11 doActivate<false> (sender=0x58b679326b90, signal_index=5,
argv=0x7ffd6513a170) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qobject.cpp:4372
#12 0x00007affa806e084 in QMetaObject::activate<void, KWin::RenderLoop*>
(sender=<optimized out>, mo=<optimized out>, local_signal_index=2, ret=0x0) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs.h:320
#13 KWin::RenderLoop::frameRequested (this=<optimized out>, _t1=<optimized
out>) at
/usr/src/kwin-4:6.8.2-0zneon+24.04+noble+release+build115/obj-x86_64-linux-gnu/src/kwin_autogen/include/moc_renderloop.cpp:171
#14 0x00007affa58b01dd in QtPrivate::QSlotObjectBase::call (a=<optimized out>,
r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized
out>, a=<optimized out>) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qobjectdefs_impl.h:462
#15 doActivate<false> (sender=0x58b6791c9bb8, signal_index=3,
argv=0x7ffd6513a210) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qobject.cpp:4372
#16 0x00007affa83ae72f in KWin::PreciseTimer::timeout (this=0x58b6791c9bb8) at
/usr/src/kwin-4:6.8.2-0zneon+24.04+noble+release+build115/obj-x86_64-linux-gnu/src/kwin_autogen/include/moc_precisetimer.cpp:116
#17 KWin::PreciseTimer::timerFdReadable (this=0x58b6791c9bb8) at
/usr/src/kwin-4:6.8.2-0zneon+24.04+noble+release+build115/src/utils/precisetimer.cpp:35
#18 0x00007affa58b01dd in QtPrivate::QSlotObjectBase::call (a=<optimized out>,
r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized
out>, a=<optimized out>) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qobjectdefs_impl.h:462
#19 doActivate<false> (sender=0x58b6793104f0, signal_index=3,
argv=0x7ffd6513a3a0) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qobject.cpp:4372
#20 0x00007affa595f9e3 in QMetaObject::activate<void, QSocketDescriptor,
QSocketNotifier::Type, QSocketNotifier::QPrivateSignal> (ret=0x0,
local_signal_index=0, mo=<optimized out>, sender=0x58b6793104f0) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qobjectdefs.h:320
#21 QSocketNotifier::activated (this=this@entry=0x58b6793104f0, _t1=...,
_t2=<optimized out>, _t3=...) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/obj-x86_64-linux-gnu/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:161
#22 0x00007affa595fb80 in QSocketNotifier::event (this=0x58b6793104f0,
e=<optimized out>) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qsocketnotifier.cpp:325
#23 0x00007affa6c463bd in QApplicationPrivate::notify_helper (this=<optimized
out>, receiver=0x58b6793104f0, e=0x7ffd6513a4f0) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/widgets/kernel/qapplication.cpp:3276
#24 0x00007affa58f2040 in QCoreApplication::notifyInternal2
(receiver=0x58b6793104f0, event=0x7ffd6513a4f0) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qcoreapplication.cpp:1114
#25 0x00007affa5705a9c in QEventDispatcherUNIXPrivate::activateSocketNotifiers
(this=this@entry=0x58b6771376e0) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qeventdispatcher_unix.cpp:277
#26 0x00007affa570662e in QEventDispatcherUNIX::processEvents (this=<optimized
out>, flags=..., flags@entry=...) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/kernel/qeventdispatcher_unix.cpp:499
#27 0x00007affa637c482 in QUnixEventDispatcherQPA::processEvents
(this=<optimized out>, flags=...) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/gui/platform/unix/qunixeventdispatcher.cpp:28
#28 0x00007affa58fd1bb in QEventLoop::exec (this=0x7ffd6513a6c0, flags=...) at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/global/qflags.h:78
#29 0x00007affa58f4dff in QCoreApplication::exec () at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/corelib/global/qflags.h:78
#30 0x00007affa5ed109d in QGuiApplication::exec () at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/gui/kernel/qguiapplication.cpp:2005
#31 0x00007affa6c43089 in QApplication::exec () at
/usr/src/qt6-base-6.11.1-0zneon+24.04+noble+release+build162/src/widgets/kernel/qapplication.cpp:2546
#32 0x000058b651250bfe in main (argc=<optimized out>, argv=<optimized out>) at
/usr/src/kwin-4:6.8.2-0zneon+24.04+noble+release+build115/src/main_wayland.cpp:713
---

best guess (not a c++ dev) from the top few lines is that a NULL pointer is
being dereferenced in frame 6 (or 5):
#6  KWin::RenderDevice::deviceId (this=0x0)
The "this=0x0" looks like a NULL pointer.
The calling code in frame 6 (/src/compositor.cpp:481) is new in kwin 6.8.2
(https://github.com/KDE/kwin/compare/v6.8.1..v6.8.2#diff-6fc4f46076486fa52b872771c7a0415f88b63d0dfc4892a5e2cf3aff6dc0a328)
and adds an early return check that dereferences two separate  ->deviceId()
So probably either layer->scanoutDevice() returns NULL or
GpuManager::self()->compatibleRenderDevice(layer->scanoutDevice()) returns NULL
for displaylink screens/devices.

The root cause is probably buried somewhere else.
I guess the displaylink driver behaves differently from the usual
nvidia/amd/intel drivers, or kwin reacts differently to displaylink drivers
during setup?

Related info: I experienced another displaylink-related bug in kwin 6.7.0:
https://bugs.kde.org/show_bug.cgi?id=521668 which was fixed by querying device
info i a different way:
https://invent.kde.org/plasma/kwin/-/commit/fa14e1d7b4f78a528336db58f76e52f94d62005a
All these observations lead me to believe that the displaylink driver is a) an
edge case used by few people and b) behaves unexpectedly/differently than most
dedicated-GPU drivers.

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

Reply via email to