Bug 389350 - Crash in button tooltip of Debug Console
Summary: Crash in button tooltip of Debug Console
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: decorations (show other bugs)
Version: git master
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL: https://phabricator.kde.org/D10291
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-23 19:56 UTC by Martin Flöser
Modified: 2021-01-06 04:34 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
mgraesslin: Wayland+
mgraesslin: X11-
mgraesslin: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Flöser 2018-01-23 19:56:58 UTC
Thread 1 "kwin_wayland" received signal SIGSEGV, Segmentation fault.
QCoreApplication::notifyInternal2 (receiver=0x0, event=0x7ffea5ccf050) at kernel/qcoreapplication.cpp:1013
1013    kernel/qcoreapplication.cpp: No such file or directory.
(gdb) bt
#0  0x00007f20f36f11b8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x0, event=0x7ffea5ccf050) at kernel/qcoreapplication.cpp:1013
#1  0x00007f20fd5a7a42 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=0x0, event=0x7ffea5ccf050) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:233
#2  0x00007f20fd5c8e07 in KWin::PointerInputRedirection::update() (this=0x55afc5640680) at /home/martin/src/kf5/kde/workspace/kwin/pointer_input.cpp:484
#3  0x00007f20fd5ac995 in KWin::ForwardInputFilter::pointerEvent(QMouseEvent*, unsigned int) (this=0x55afc5fdee50, event=0x7ffea5ccf740, nativeButton=0)
    at /home/martin/src/kf5/kde/workspace/kwin/input.cpp:1292
#4  0x00007f20fd5daeeb in std::__invoke_impl<bool, bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&>(std::__invoke_memfun_deref, bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&) (__f=
    @0x7ffea5ccf500: &virtual table offset 16, __t=@0x55afc60963f0: 0x55afc5fdee50, __args#0=@0x7ffea5ccf518: 0x7ffea5ccf740, __args#1=@0x7ffea5ccf510: 0)
    at /usr/include/c++/7/bits/invoke.h:73
#5  0x00007f20fd5da9d7 in std::__invoke<bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&>(bool (KWin::InputEventFilter::*&)(QMouseEvent*, unsigned int), KWin::InputEventFilter* const&, KWin::MouseEvent*&, int&) (__fn=
    @0x7ffea5ccf500: &virtual table offset 16, __args#0=@0x55afc60963f0: 0x55afc5fdee50, __args#1=@0x7ffea5ccf518: 0x7ffea5ccf740, __args#2=@0x7ffea5ccf510: 0)
    at /usr/include/c++/7/bits/invoke.h:96
#6  0x00007f20fd5da496 in std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>::__call<bool, KWin::InputEventFilter* const&, 0ul, 1ul, 2ul>(std::tuple<KWin::InputEventFilter* const&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7ffea5ccf500, __args=<unknown type in /opt/kf5/lib/x86_64-linux-gnu/libkwin.so.5, CU 0x5b2291, DIE 0x61d35c>) at /usr/include/c++/7/functional:469
#7  0x00007f20fd5da1a5 in std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>::operator()<KWin::InputEventFilter* const&, bool>(KWin::InputEventFilter* const&) (this=0x7ffea5ccf500, __args#0=@0x55afc60963f0: 0x55afc5fdee50) at /usr/include/c++/7/functional:551
#8  0x00007f20fd5d9f72 in __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >::operator()<QTypedArrayData<KWin::InputEventFilter*>::const_iterator>(QTypedArrayData<KWin::InputEventFilter*>::const_iterator) (this=0x7ffea5ccf500, __it=...)
    at /usr/include/c++/7/bits/predefined_ops.h:283
#9  0x00007f20fd5d8616 in std::__find_if<QTypedArrayData<KWin::InputEventFilter*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> > >(QTypedArrayData<KWin::InputEventFilter*>::const_iterator, QTypedArrayData<KWin::InputEventFilter*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >, std::random_access_iterator_tag) (__first=..., __last=..., __pred=...) at /usr/include/c++/7/bits/stl_algo.h:132
#10 0x00007f20fd5d7575 in std::__find_if<QTypedArrayData<KWin::InputEventFilter*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<---Type <return> to continue, or q <return> to quit---
1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> > >(QTypedArrayData<KWin::InputEventFilter*>::const_iterator, QTypedArrayData<KWin::InputEventFilter*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >) (__first=..., __last=..., __pred=...)
    at /usr/include/c++/7/bits/stl_algo.h:162
#11 0x00007f20fd5d634e in std::find_if<QTypedArrayData<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(QTypedArrayData<KWin::InputEventFilter*>::const_iterator, QTypedArrayData<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>) (__first=..., __last=..., __pred=...) at /usr/include/c++/7/bits/stl_algo.h:3933
#12 0x00007f20fd5d4bb1 in std::none_of<QTypedArrayData<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(QTypedArrayData<KWin::InputEventFilter*>::const_iterator, QTypedArrayData<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>) (__first=..., __last=..., __pred=...) at /usr/include/c++/7/bits/stl_algo.h:526
#13 0x00007f20fd5d2bd0 in std::any_of<QTypedArrayData<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(QTypedArrayData<KWin::InputEventFilter*>::const_iterator, QTypedArrayData<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>) (__first=..., __last=..., __pred=...) at /usr/include/c++/7/bits/stl_algo.h:544
#14 0x00007f20fd5cf627 in KWin::InputRedirection::processFilters<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)> >(std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::MouseEvent*, int))(QMouseEvent*, unsigned int)>) (this=0x55afc5663310, function=...)
    at /home/martin/src/kf5/kde/workspace/kwin/input.h:189
#15 0x00007f20fd5c7eef in KWin::PointerInputRedirection::processMotion(QPointF const&, QSizeF const&, QSizeF const&, unsigned int, unsigned long long, KWin::LibInput::Device*) (this=0x55afc5640680, pos=..., delta=..., deltaNonAccelerated=..., time=27732847, timeUsec=27732847136, device=0x55afc5a05fe0) at /home/martin/src/kf5/kde/workspace/kwin/pointer_input.cpp:305
#16 0x00007f20fd5a1920 in KWin::InputRedirection::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)>::operator()(const QSizeF &, const QSizeF &, uint32_t, quint64, KWin::LibInput::Device *) const (__closure=0x55afc579b9f0, delta=..., deltaNonAccel=..., time=27732847, timeMicroseconds=27732847136, device=0x55afc5a05fe0)
    at /home/martin/src/kf5/kde/workspace/kwin/input.cpp:1757
#17 0x00007f20fd5a7489 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2, 3, 4>, QtPrivate::List<const QSizeF&, const QSizeF&, unsigned int, long long unsigned int, KWin::LibInput::Device*>, void, KWin::InputRedirection::setupLibInput()::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)> >::call(KWin::InputRedirection::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)> &, void **) (f=..., arg=0x7ffea5ccfb00) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:130
#18 0x00007f20fd5a6f7c in QtPrivate::Functor<KWin::InputRedirection::setupLibInput()::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)>, 5>::call<QtPrivate::List<QSizeF const&, QSizeF const&, unsigned int, unsigned long long, KWin::LibInput::Device*>, void>(KWin::InputRedirection::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)> &, void *, void **) (f=..., arg=0x7ffea5ccfb00) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:240
---Type <return> to continue, or q <return> to quit---
#19 0x00007f20fd5a6954 in QtPrivate::QFunctorSlotObject<KWin::InputRedirection::setupLibInput()::<lambda(const QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)>, 5, QtPrivate::List<const QSizeF&, const QSizeF&, unsigned int, long long unsigned int, KWin::LibInput::Device*>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55afc579b9e0, r=0x55afc5663310, a=0x7ffea5ccfb00, ret=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:168
#20 0x00007f20f371fe6f in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffea5ccfb00, r=0x55afc5663310, this=0x55afc579b9e0)
    at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:101
#21 0x00007f20f371fe6f in QMetaObject::activate(QObject*, int, int, void**) (sender=0x55afc5713400, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>)
    at kernel/qobject.cpp:3749
#22 0x00007f20fd78e660 in KWin::LibInput::Connection::pointerMotion(QSizeF const&, QSizeF const&, unsigned int, unsigned long long, KWin::LibInput::Device*) (this=0x55afc5713400, _t1=..., _t2=..., _t3=27732847, _t4=27732847136, _t5=0x55afc5a05fe0) at /opt/build/kf5/kde/workspace/kwin/kwin_autogen/PCJB6APXE6/moc_connection.cpp:538
#23 0x00007f20fd74b46a in KWin::LibInput::Connection::processEvents() (this=0x55afc5713400) at /home/martin/src/kf5/kde/workspace/kwin/libinput/connection.cpp:388
#24 0x00007f20fd5a184f in KWin::InputRedirection::<lambda()>::operator()(void) const (__closure=0x55afc5799320) at /home/martin/src/kf5/kde/workspace/kwin/input.cpp:1740
#25 0x00007f20fd5a740f in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::InputRedirection::setupLibInput()::<lambda()> >::call(KWin::InputRedirection::<lambda()> &, void **) (f=..., arg=0x7f20cc0076c0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:130
#26 0x00007f20fd5a6f52 in QtPrivate::Functor<KWin::InputRedirection::setupLibInput()::<lambda()>, 0>::call<QtPrivate::List<>, void>(KWin::InputRedirection::<lambda()> &, void *, void **) (f=..., arg=0x7f20cc0076c0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:240
#27 0x00007f20fd5a68c8 in QtPrivate::QFunctorSlotObject<KWin::InputRedirection::setupLibInput()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55afc5799310, r=0x55afc5663310, a=0x7f20cc0076c0, ret=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:168
#28 0x00007f20f37208c2 in QObject::event(QEvent*) (this=0x55afc5663310, e=<optimized out>) at kernel/qobject.cpp:1246
#29 0x00007f20f461059c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007f20f4617e64 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007f20f36f1258 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55afc5663310, event=event@entry=0x7f20cc0059c0) at kernel/qcoreapplication.cpp:1018
#32 0x00007f20f36f39cd in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7f20cc0059c0, receiver=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:233
#33 0x00007f20f36f39cd in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55afc55b3330) at kernel/qcoreapplication.cpp:1678
#34 0x00007f20f37472f4 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55afc55f6000, flags=...) at kernel/qeventdispatcher_unix.cpp:466
#35 0x00007f20e38af9dd in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /opt/kf5/lib/x86_64-linux-gnu/plugins/platforms/KWinQpaPlugin.so
---Type <return> to continue, or q <return> to quit---
#36 0x00007f20f36ef2aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffea5cd0390, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
#37 0x00007f20f36f8214 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1291
#38 0x000055afc400bb8f in main(int, char**) (argc=4, argv=0x7ffea5cd0c88) at /home/martin/src/kf5/kde/workspace/kwin/main_wayland.cpp:826
Comment 1 Martin Flöser 2018-02-04 12:27:24 UTC
Analysis: the crash is triggered because of showing the Tooltip.

from updateDecoration a new internal window is opened which causes update to be called again and m_internalWindow getting reset. Due to that the m_internalWindow becomes null, although the check before evaluated to not null.
Comment 2 Martin Flöser 2018-02-04 12:39:55 UTC
Addressed in https://phabricator.kde.org/D10291
Comment 3 Justin Zobel 2020-12-07 04:13:56 UTC
As it has been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved.

I have set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved/worksforme" when you respond, thank you.
Comment 4 Bug Janitor Service 2020-12-22 04:34:42 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 5 Bug Janitor Service 2021-01-06 04:34:13 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!