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

            Bug ID: 522490
           Summary: kwin crashes in KWin::PlacementTracker::add when
                    window decoration tooltips activate
    Classification: Plasma
           Product: kwin
      Version First 6.7.80
       Reported In:
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: generic-crash
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

DESCRIPTION

When I hover over window decorations, kwin crashes. It does not crash when just
moving over them, or clicking and moving away quickly. This and the trace
suggest that it's about the toolip that shows on hover.

This has been happening to me for a while (a week or three). I just cleaned out
my kde/usr and build directories and rebuilt from scratch, and can still
trigger it somewhat reliably. It doesn't happen every single time. I think
plasmashell needs to be running (when the Kwin crash kills my manually started
plasmashell, the tooltips pop up normally - I haven't tested it long-term to
see if it can occur in kwin without plasmashell, but at least it doesn't happen
immediately). Sometimes it also avoids crashing for a bit with plasmashell, but
I've also seen it happen within a dozen or two seconds after it crashed, if I
lingered on a decoration for too long.

Within a few minutes I can trigger it very consistently.

I have not tested it using Fedora's release KWin and plasmashell, only my
self-built master.

STEPS TO REPRODUCE
1. Hover over window decoration button

OBSERVED RESULT

Crash

EXPECTED RESULT

Tooltip

SOFTWARE/OS VERSIONS

Operating System: Fedora Linux 44
KDE Plasma Version: 6.7.80
KDE Frameworks Version: 6.28.0
Qt Version: 6.11.1
Kernel Version: 7.0.13-200.fc44.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 4 × Intel® Core™ i5-6200U CPU @ 2.30GHz
Memory: 16 GiB of RAM (15.5 GiB usable)
Graphics Processor: Intel® HD Graphics 520

Single internal monitor

ADDITIONAL INFORMATION

Backtrace: 

There's a ??? in the backtrace right when crashing, but the line before is

    if (window->isUnmanaged() || window->isAppletPopup() ||
window->isSpecialWindow()) {
        return;
    }

Core was generated by `/home/wolki/kde/usr/bin/kwin_wayland --wayland-fd 7
--socket wayland-0 --xwayland-fd 8 --xwayland-fd 9 --xwayland-display :0
--xwayland-initfd 11 --xwayland-init-display :1 --xwayland-xauthority
/run/user/1000/xauth_auQepu --xwayland'.
Program terminated with signal SIGSEGV, Segmentation fault.
#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 0x7ff79dcc6480 (LWP 2451))]
(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  0x00007ff7a467be93 in __pthread_kill_internal (threadid=<optimized out>,
signo=11) at pthread_kill.c:89
#2  0x00007ff7a4620f8e in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007ff7a8deed0f in KCrash::defaultCrashHandler (sig=11)
    at /home/wolki/kde/src/kcrash/src/kcrash.cpp:630
#4  0x00007ff7a46210b0 in <signal handler called> () at /lib64/libc.so.6
#5  0x00000000294045e0 in ??? ()
#6  0x00007ff7a851c2be in KWin::PlacementTracker::add (this=0x26f5e8f0,
window=<optimized out>)
    at /home/wolki/kde/src/kwin/src/placementtracker.cpp:38
#7  0x00007ff7a4d84eb7 in QtPrivate::QSlotObjectBase::call
    (this=<optimized out>, r=0x26f5e8f0, a=<optimized out>)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qobjectdefs_impl.h:462
#8  doActivate<false> (sender=<optimized out>, signal_index=<optimized out>,
argv=argv@entry=0x7ffd5fd3c2c0)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qobject.cpp:4372
#9  0x00007ff7a4d7ab47 in QMetaObject::activate
    (sender=<optimized out>, m=m@entry=0x7ff7a8c57360,
local_signal_index=local_signal_index@entry=6, argv=argv@entry=0x7ffd5fd3c2c0)
at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qobject.cpp:4432
#10 0x00007ff7a8648da6 in QMetaObject::activate<void, KWin::Window*>
    (sender=<optimized out>, mo=0x7ff7a8c57360, local_signal_index=6, ret=0x0)
    at /usr/include/qt6/QtCore/qobjectdefs.h:320
#11 KWin::Workspace::windowAdded (this=<optimized out>, _t1=<optimized out>)
    at
/home/wolki/kde/build/kwin/src/kwin_autogen/include/moc_workspace.cpp:629
#12 0x00007ff7a8487f64 in KWin::InternalWindow::present
(this=this@entry=0x284e28a0, frame=...)
    at /home/wolki/kde/src/kwin/src/internalwindow.cpp:411
#13 0x000000000042b0f5 in KWin::QPA::BackingStore::flush
    (this=0x289100c0, window=<optimized out>, region=<optimized out>,
offset=<optimized out>)
    at /home/wolki/kde/src/kwin/src/core/output.h:59
#14 0x00007ff7a579520e in QBackingStore::flush
    (this=0x28dc4d90, region=..., window=window@entry=0x291211b0, offset=...)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/painting/qbackingstore.cpp:224
#15 0x00007ff7a62ba1da in QWidgetRepaintManager::flush
    (this=this@entry=0x294122c0, widget=0x7ff748029880, region=...,
widgetTextures=0x0)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qwidgetrepaintmanager.cpp:1092
#16 0x00007ff7a62bb81e in QWidgetRepaintManager::flush (this=0x294122c0)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qwidgetrepaintmanager.cpp:986
#17 0x00007ff7a62bde05 in QWidgetRepaintManager::paintAndFlush
(this=this@entry=0x294122c0)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qwidgetrepaintmanager.cpp:918
#18 0x00007ff7a62bf01d in QWidgetRepaintManager::sync
    (this=0x294122c0, exposedWidget=0x7ff748029880, exposedRegion=...)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qwidgetrepaintmanager.cpp:638
#19 0x00007ff7a62c9977 in QWidgetWindow::event (this=<optimized out>,
event=<optimized out>)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qwidgetwindow.cpp:340
#20 0x00007ff7a623f92e in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x291211b0, e=0x7ffd5fd3cc20)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qapplication.cpp:3276
#21 0x00007ff7a4d0f7b8 in QCoreApplication::notifyInternal2
(receiver=0x291211b0, event=0x7ffd5fd3cc20)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qcoreapplication.cpp:1114
#22 0x00007ff7a4d0f80d in QCoreApplication::sendSpontaneousEvent
    (receiver=<optimized out>, event=<optimized out>)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qcoreapplication.cpp:1573
#23 0x00007ff7a570763a in QGuiApplicationPrivate::processExposeEvent
(e=0x7ffd5fd3ccc0)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/kernel/qguiapplication.cpp:3523
#24 0x00007ff7a57801a4 in QWindowSystemEventHandler::sendEvent (this=<optimized
out>, e=0x7ffd5fd3ccc0)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:190
#25
QWindowSystemHelper<QWindowSystemInterface::SynchronousDelivery>::handleEvent<QWindowSystemInterfacePrivate::ExposeEvent,
QWindow*, QRegion> ()
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:102
#26
QWindowSystemHelper<QWindowSystemInterface::SynchronousDelivery>::handleEvent<QWindowSystemInterfacePrivate::ExposeEvent,
QWindow*, QRegion> ()
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:96
#27 0x00007ff7a5780313 in
QWindowSystemHelper<QWindowSystemInterface::DefaultDelivery>::handleEvent<QWindowSystemInterfacePrivate::ExposeEvent,
QWindow*, QRegion> ()
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:80
#28 handleWindowSystemEvent<QWindowSystemInterfacePrivate::ExposeEvent,
QWindowSystemInterface::DefaultDelivery, QWindow*, QRegion> ()
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:138
#29
QWindowSystemInterface::handleExposeEvent<QWindowSystemInterface::DefaultDelivery>
    (window=0x291211b0, region=...)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:341
#30 0x0000000000434fb1 in KWin::QPA::Window::map (this=0x7ff7480179e0)
    at /home/wolki/kde/src/kwin/src/plugins/qpa/window.cpp:159
#31 0x00007ff7a62a1738 in QWidgetPrivate::show_sys (this=this@entry=0x28e90110)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qwidget.cpp:8209
#32 0x00007ff7a62ab95d in QWidgetPrivate::show_helper
(this=this@entry=0x28e90110)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qwidget.cpp:8132
#33 0x00007ff7a62afed5 in QWidgetPrivate::setVisible (this=0x28e90110,
visible=<optimized out>)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qwidget.cpp:8440
#34 0x00007ff7a8401de0 in operator() (__closure=0x293a59b0)
    at /home/wolki/kde/src/kwin/src/decorations/decoratedwindow.cpp:89
#35 operator() (__closure=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:117
#36 QtPrivate::FunctorCallBase::call_internal<void,
QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>,
QtPrivate::List<>, void,
KWin::Decoration::DecoratedWindowImpl::DecoratedWindowImpl(KWin::Window*,
KDecoration3::DecoratedWindow*, KDecoration3::Decoration*)::<lambda()>
>::call(KWin::Decoration::DecoratedWindowImpl::DecoratedWindowImpl(KWin::Window*,
KDecoration3::DecoratedWindow*, KDecoration3::Decoration*)::<lambda()>&,
void**)::<lambda()> > (args=<optimized out>, fn=<optimized out>)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:66
#37 QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>,
QtPrivate::List<>, void,
KWin::Decoration::DecoratedWindowImpl::DecoratedWindowImpl(KWin::Window*,
KDecoration3::DecoratedWindow*, KDecoration3::Decoration*)::<lambda()> >::call
(f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#38
QtPrivate::FunctorCallable<KWin::Decoration::DecoratedWindowImpl::DecoratedWindowImpl(KWin::Window*,
KDecoration3::DecoratedWindow*, KDecoration3::Decoration*)::<lambda()>
>::call<QtPrivate::List<>, void>
    (f=..., arg=<optimized out>) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:338
#39
QtPrivate::QCallableObject<KWin::Decoration::DecoratedWindowImpl::DecoratedWindowImpl(KWin::Window*,
KDecoration3::DecoratedWindow*, KDecoration3::Decoration*)::<lambda()>,
QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *,
void **, bool *)
    (which=<optimized out>, this_=0x293a59a0, r=<optimized out>, a=<optimized
out>, ret=<optimized out>)
    at /usr/include/qt6/QtCore/qobjectdefs_impl.h:548
#40 0x00007ff7a4d84eb7 in QtPrivate::QSlotObjectBase::call
    (this=<optimized out>, r=0x284f8750, a=<optimized out>)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qobjectdefs_impl.h:462
#41 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>,
argv=argv@entry=0x7ffd5fd3d0b0)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qobject.cpp:4372
#42 0x00007ff7a4d7ab47 in QMetaObject::activate
    (sender=<optimized out>, m=m@entry=0x7ff7a531d400,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd5fd3d0b0)
at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qobject.cpp:4432
#43 0x00007ff7a4d95233 in QMetaObject::activate<void, QTimer::QPrivateSignal>
    (sender=<optimized out>, mo=0x7ff7a531d400, local_signal_index=0, ret=0x0)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qobjectdefs.h:320
#44 QTimer::timeout (this=<optimized out>, _t1=...)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qtimer.cpp:182
#45 0x00007ff7a4d80793 in QObject::event (this=<optimized out>, e=<optimized
out>)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qobject.cpp:1509
#46 0x00007ff7a623f92e in QApplicationPrivate::notify_helper
    (this=<optimized out>, receiver=0x284f87a0, e=0x7ffd5fd3d260)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qapplication.cpp:3276
#47 0x00007ff7a4d0f7b8 in QCoreApplication::notifyInternal2
(receiver=0x284f87a0, event=0x7ffd5fd3d260)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qcoreapplication.cpp:1114
#48 0x00007ff7a4d0f7fd in QCoreApplication::sendEvent (receiver=<optimized
out>, event=<optimized out>)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qcoreapplication.cpp:1559
#49 0x00007ff7a4f0b669 in QTimerInfoList::activateTimers
(this=this@entry=0x26b893f8)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qtimerinfo_unix.cpp:427
#50 0x00007ff7a4f0d6e0 in QEventDispatcherUNIXPrivate::activateTimers
(this=this@entry=0x26b89320)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:222
#51 0x00007ff7a4f0fad5 in QEventDispatcherUNIX::processEvents (this=<optimized
out>, flags=...)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:504
#52 0x00007ff7a5d61f22 in QUnixEventDispatcherQPA::processEvents
(this=<optimized out>, flags=...)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/platform/unix/qunixeventdispatcher.cpp:28
#53 0x00007ff7a4d1d57b in QEventLoop::exec (this=this@entry=0x7ffd5fd3d440,
flags=..., flags@entry=...)
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/global/qflags.h:78
#54 0x00007ff7a4d18992 in QCoreApplication::exec ()
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/corelib/kernel/qcoreapplication.cpp:1457
#55 0x00007ff7a56eff1d in QGuiApplication::exec ()
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/gui/kernel/qguiapplication.cpp:2005
#56 0x00007ff7a623f899 in QApplication::exec ()
    at
/usr/src/debug/qt6-qtbase-6.11.1-1.fc44.x86_64/src/widgets/kernel/qapplication.cpp:2546
#57 0x000000000040bdbf in main (argc=<optimized out>, argv=<optimized out>)
    at /home/wolki/kde/src/kwin/src/main_wayland.cpp:688

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

Reply via email to