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

            Bug ID: 459404
           Summary: Crash in KWin::Window::isDesktop() when Alt+Tabbing
    Classification: Unclassified
           Product: kwin
           Version: master
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: wayland-generic
          Assignee: kwin-bugs-n...@kde.org
          Reporter: n...@kde.org
  Target Milestone: ---

With today's git master for KWin, I am seeing kwin_wayland crash when I
Alt+Tab.

This happens roughly 25% of the time. It's often enough to be quite disruptive.

backtrace:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f9cae8ef63b in KWin::Window::isDesktop (this=this@entry=0x263b420)
    at /home/nate/kde/src/kwin/src/window.h:2125
2125        return windowType() == NET::Desktop;
[Current thread is 1 (Thread 0x7f9ca7938980 (LWP 27437))]
(gdb) bt
#0  0x00007f9cae8ef63b in KWin::Window::isDesktop() const
(this=this@entry=0x263b420)
    at /home/nate/kde/src/kwin/src/window.h:2125
#1  KWin::Window::isSpecialWindow() const (this=this@entry=0x263b420)
    at /home/nate/kde/src/kwin/src/window.cpp:1053
#2  0x00007f9cae8ef6f8 in operator() (cl=0x263b420, __closure=0x7fffaca82410)
    at /home/nate/kde/src/kwin/src/window.cpp:3420
#3  std::__invoke_impl<bool, KWin::Window::findWindowWithSameCaption()
const::<lambda(const KWin::Window*)>&, const KWin::Window*> (__f=...) at
/usr/include/c++/12/bits/invoke.h:61
#4  std::__invoke_r<bool, KWin::Window::findWindowWithSameCaption()
const::<lambda(const KWin::Window*)>&, const KWin::Window*> (__fn=...) at
/usr/include/c++/12/bits/invoke.h:114
#5  std::_Function_handler<bool(const KWin::Window*),
KWin::Window::findWindowWithSameCaption() const::<lambda(const KWin::Window*)>
>::_M_invoke(const std::_Any_data &, const KWin::Window *&&)
    (__functor=..., __args#0=<optimized out>) at
/usr/include/c++/12/bits/std_function.h:290
#6  0x00007f9cae90831b in std::function<bool (KWin::Window
const*)>::operator()(KWin::Window const*) const (__args#0=<optimized out>,
this=0x7fffaca82410)
    at /usr/include/c++/12/bits/std_function.h:591
#7  __gnu_cxx::__ops::_Iter_pred<std::function<bool (KWin::Window const*)>
>::operator()<QList<KWin::Window*>::const_iterator>(QList<KWin::Window*>::const_iterator)
(__it=..., this=0x7fffaca82410)
    at /usr/include/c++/12/bits/predefined_ops.h:318
#8  std::__find_if<QList<KWin::Window*>::const_iterator,
__gnu_cxx::__ops::_Iter_pred<std::function<bool (KWin::Window const*)> >
>(QList<KWin::Window*>::const_iterator, QList<KWin::Window*>::const_iterator,
__gnu_cxx::__ops::_Iter_pred<std::function<bool (KWin::Window const*)> >,
std::random_access_iterator_tag) (__first=..., __last=..., __pred=...)
    at /usr/include/c++/12/bits/stl_algobase.h:2097
#9  0x00007f9cae90d0a2 in std::__find_if<QList<KWin::Window*>::const_iterator,
__gnu_cxx::__ops::_Iter_pred<std::function<bool (KWin::Window const*)> >
>(QList<KWin::Window*>::const_iterator, QList<KWin::Window*>::const_iterator,
__gnu_cxx::__ops::_Iter_pred<std::function<bool (KWin::Window const*)> >)
(__pred=..., __last=..., __first=...) at
/usr/include/c++/12/bits/stl_algobase.h:2113
#10 std::find_if<QList<KWin::Window*>::const_iterator, std::function<bool
(KWin::Window const*)> >(QList<KWin::Window*>::const_iterator,
QList<KWin::Window*>::const_iterator, std::function<bool (KWin::Window
const*)>) (__pred=..., __last=..., __first=...) at
/usr/include/c++/12/bits/stl_algo.h:3878
#11 KWin::Window::findInList<KWin::Window, KWin::Window>(QList<KWin::Window*>
const&, std::function<bool (KWin::Window const*)>) (func=..., list=<optimized
out>)
    at /home/nate/kde/src/kwin/src/window.h:2313
#12 KWin::Workspace::findAbstractClient(std::function<bool (KWin::Window
const*)>) const
     (this=0x15dc1e0, func=...) at
/home/nate/kde/src/kwin/src/workspace.cpp:1980
#13 0x00007f9cae8f199c in KWin::Window::findWindowWithSameCaption() const
    (this=this@entry=0x25ce230) at /home/nate/kde/src/kwin/src/window.cpp:3422
#14 0x00007f9cae8e8b2f in KWin::WaylandWindow::updateCaption() (this=0x25ce230)
    at /home/nate/kde/src/kwin/src/waylandwindow.cpp:191
#15 0x00007f9cae8e8db0 in KWin::WaylandWindow::setCaption(QString const&)
    (this=this@entry=0x25ce230, caption=...) at
/home/nate/kde/src/kwin/src/waylandwindow.cpp:207
#16 0x00007f9cae93f398 in KWin::XdgToplevelWindow::handleWindowTitleChanged()
(this=0x25ce230)
    at /home/nate/kde/src/kwin/src/xdgshellwindow.cpp:1099
#17 0x00007f9cacedb8b6 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7fffaca82630, r=<optimized out>, this=0x245f660)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#18 doActivate<false>(QObject*, int, void**)
    (sender=0x242c830, signal_index=6, argv=0x7fffaca82630) at
kernel/qobject.cpp:3886
#19 0x00007f9caced68b7 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=<optimized out>, m=m@entry=0x7f9caec28840
<KWaylandServer::XdgToplevelInterface::staticMetaObject>,
local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fffaca82630)
    at kernel/qobject.cpp:3946
#20 0x00007f9cae78adb5 in
KWaylandServer::XdgToplevelInterface::windowTitleChanged(QString const&)
    (this=<optimized out>, _t1=<optimized out>)
    at
/home/nate/kde/build/kwin/src/kwin_autogen/IEXH3JLKNG/moc_xdgshell_interface.cpp:740
#21 0x00007f9caea899b4 in
QtWaylandServer::xdg_toplevel::handle_set_title(wl_client*, wl_resource*, char
const*) (client=<optimized out>, resource=<optimized out>, title=0x27c26ec
"Mozilla Firefox")
    at /home/nate/kde/build/kwin/src/wayland/qwayland-server-xdg-shell.cpp:1339
#22 0x00007f9caa051746 in ffi_call_unix64 () at ../src/x86/unix64.S:105
#23 0x00007f9caa04e4d2 in ffi_call_int
    (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>,
avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672
#24 0x00007f9caca711e1 in wl_closure_invoke
    (closure=closure@entry=0x27c2610, flags=flags@entry=2, target=<optimized
out>, 
    target@entry=0x25ae990, opcode=opcode@entry=2, data=<optimized out>,
data@entry=0x25762e0)
    at ../src/connection.c:1025
#25 0x00007f9caca6ca1a in wl_client_connection_data
    (fd=<optimized out>, mask=<optimized out>, data=0x25762e0) at
../src/wayland-server.c:437
#26 0x00007f9caca6f2f2 in wl_event_loop_dispatch (loop=0x12b1990,
timeout=<optimized out>)
    at ../src/event-loop.c:1027
#27 0x00007f9cae9dc7e7 in KWaylandServer::Display::dispatchEvents()
(this=<optimized out>)
    at /home/nate/kde/src/kwin/src/wayland/display.cpp:114
#28 0x00007f9cacedb8b6 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7fffaca82d60, r=<optimized out>, this=0x1fece60)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#29 doActivate<false>(QObject*, int, void**)
    (sender=0x1fdfda0, signal_index=3, argv=0x7fffaca82d60) at
kernel/qobject.cpp:3886
#30 0x00007f9caced68b7 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=sender@entry=0x1fdfda0, m=m@entry=0x7f9cad16d440
<QSocketNotifier::staticMetaObject>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffaca82d60)
    at kernel/qobject.cpp:3946
#31 0x00007f9cacede133 in QSocketNotifier::activated(QSocketDescriptor,
QSocketNotifier::Type, QSocketNotifier::QPrivateSignal)
(this=this@entry=0x1fdfda0, _t1=..., _t2=<optimized out>, _t3=...)
    at .moc/moc_qsocketnotifier.cpp:178
#32 0x00007f9cacede955 in QSocketNotifier::event(QEvent*) (this=0x1fdfda0,
e=<optimized out>)
    at kernel/qsocketnotifier.cpp:302
#33 0x00007f9cabbaed22 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=<optimized out>, receiver=0x1fdfda0, e=0x7fffaca82e60) at
kernel/qapplication.cpp:3637
#34 0x00007f9cacea8218 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    (receiver=0x1fdfda0, event=0x7fffaca82e60) at
kernel/qcoreapplication.cpp:1064
#35 0x00007f9cacef63de in
QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x1271480)
    at kernel/qeventdispatcher_unix.cpp:304
#36 0x00007f9cacef681d in
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:511
#37 0x000000000052c501 in
QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
#38 0x00007f9cacea6c6a in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=this@entry=0x7fffaca82fd0, flags=..., flags@entry=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#39 0x00007f9caceaed32 in QCoreApplication::exec() ()
    at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#40 0x00007f9cad35fb70 in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1860
#41 0x00007f9cabbaec99 in QApplication::exec() () at
kernel/qapplication.cpp:2829
#42 0x0000000000444317 in main(int, char**) (argc=<optimized out>,
argv=<optimized out>)
    at /home/nate/kde/src/kwin/src/main_wayland.cpp:613

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

Reply via email to