https://bugs.kde.org/show_bug.cgi?id=471309
Bug ID: 471309 Summary: kwin_wayland periodically crashes when pressing Shift+PrintScreen Classification: Plasma Product: kwin Version: master Platform: Other OS: Linux Status: REPORTED Keywords: qt6 Severity: crash Priority: NOR Component: wayland-generic Assignee: kwin-bugs-n...@kde.org Reporter: n...@kde.org Target Milestone: --- SUMMARY This is not 100% reproducible for me, but it feels about 15-25% reproducible. STEPS TO REPRODUCE 1. Press Shift+PrintScreen OBSERVED RESULT kwin_wayland crashes EXPECTED RESULT Spectacle takes a full screen screenshot CRASH BACKTRACE #0 0x00007f59564c0834 in std::__uniq_ptr_impl<KJobPrivate, std::default_delete<KJobPrivate> >::_M_ptr() const (this=0x10) at /usr/include/c++/13/bits/unique_ptr.h:199 #1 std::unique_ptr<KJobPrivate, std::default_delete<KJobPrivate> >::get() const (this=0x10) at /usr/include/c++/13/bits/unique_ptr.h:470 #2 qGetPtrHelper<std::unique_ptr<KJobPrivate, std::default_delete<KJobPrivate> > const>(std::unique_ptr<KJobPrivate, std::default_delete<KJobPrivate> > const&) (ptr=std::unique_ptr<KJobPrivate> = {...}) at /usr/include/qt6/QtCore/qtclasshelpermacros.h:79 #3 KJob::d_func() (this=this@entry=0x0) at /home/nate/kde/src/kcoreaddons/src/lib/jobs/kjob.h:760 #4 KJob::setUiDelegate(KJobUiDelegate*) (this=this@entry=0x0, delegate=delegate@entry=0x7f590c024920) at /home/nate/kde/src/kcoreaddons/src/lib/jobs/kjob.cpp:55 #5 0x00007f5956dde9c0 in KServiceActionComponent::emitGlobalShortcutPressed(GlobalShortcut const&) (this=<optimized out>, shortcut=<optimized out>) at /home/nate/kde/src/kglobalacceld/src/kserviceactioncomponent.cpp:77 #6 0x00007f5956de83f8 in GlobalShortcutsRegistry::keyPressed(int) (this=0x7f5956dff100 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__self> >::instance()::holder>, keyQt=<optimized out>) at /home/nate/kde/src/kglobalacceld/src/globalshortcutsregistry.cpp:312 #7 0x00007f5956dde81c in KGlobalAccelInterface::keyPressed(int) (this=this@entry=0x2841a90, keyQt=<optimized out>) at /home/nate/kde/src/kglobalacceld/src/kglobalaccel_interface.cpp:41 #8 0x00000000004616f5 in KGlobalAccelImpl::checkKeyPressed(int) (this=this@entry=0x2841a90, keyQt=<optimized out>) at /home/nate/kde/src/kwin/src/plugins/kglobalaccel/kglobalaccel_plugin.cpp:47 #9 0x000000000046129b in KGlobalAccelImpl::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7ffcdb7b8df0, _o=0x2841a90) at /home/nate/kde/build6/kwin/src/plugins/kglobalaccel/KF6GlobalAccelKWinPlugin_autogen/EWIEGA46WW/moc_kglobalaccel_plugin.cpp:126 #10 KGlobalAccelImpl::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x200ad80, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=0, _a=_a@entry=0x7ffcdb7b8df0) at /home/nate/kde/build6/kwin/src/plugins/kglobalaccel/KF6GlobalAccelKWinPlugin_autogen/EWIEGA46WW/moc_kglobalaccel_plugin.cpp:120 #11 0x00007f5954791ee7 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) (self=..., target=target@entry=0x200ad80, connectionType=connectionType@entry=Qt::DirectConnection, paramCount=paramCount@entry=2, parameters=parameters@entry=0x7ffcdb7b8df0, typeNames=0x7ffcdb7b8e00, metaTypes=0x7ffcdb7b8e10) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qmetaobject.cpp:2704 #12 0x00007f595479297d in QMetaObject::invokeMethodImpl(QObject*, char const*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) (obj=<optimized out>, member=member@entry=0x7f5958207c92 "checkKeyPressed", type=type@entry=Qt::DirectConnection, paramCount=paramCount@entry=2, parameters=parameters@entry=0x7ffcdb7b8df0, typeNames=typeNames@entry=0x7ffcdb7b8e00, metaTypes=0x7ffcdb7b8e10) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qmetaobject.cpp:1577 #13 0x00007f5957e7f687 in QMetaObject::invokeMethod<QMetaMethodArgument>(QObject*, char const*, Qt::ConnectionType, QMetaMethodReturnArgument, QMetaMethodArgument&&) (r=..., c=Qt::DirectConnection, member=0x7f5958207c92 "checkKeyPressed", obj=<optimized out>) at /usr/include/c++/13/array:276 #14 operator() (__closure=<synthetic pointer>, keyQt=16777225, mods=...) at /home/nate/kde/src/kwin/src/globalshortcuts.cpp:183 #15 KWin::GlobalShortcutsManager::processKey(QFlags<Qt::KeyboardModifier>, int) (this=0x1ef0620, mods=..., keyQt=16777225) at /home/nate/kde/src/kwin/src/globalshortcuts.cpp:190 #16 0x00007f5957ea6d29 in std::__invoke_impl<bool, bool (KWin::InputEventFilter::*&)(KWin::KeyEvent*), KWin::InputEventFilter* const&, KWin::KeyEvent*&>(std::__invoke_memfun_deref, bool (KWin::InputEventFilter::*&)(KWin::KeyEvent*), KWin::InputEventFilter* const&, KWin::KeyEvent*&) (__f=<optimized out>, __t=@0x26ec1a8: 0x2439f50) at /usr/include/c++/13/bits/invoke.h:71 #17 std::__invoke<bool (KWin::InputEventFilter::*&)(KWin::KeyEvent*), KWin::InputEventFilter* const&, KWin::KeyEvent*&>(bool (KWin::InputEventFilter::*&)(KWin::KeyEvent*), KWin::InputEventFilter* const&, KWin::KeyEvent*&) (__fn=<optimized out>) at /usr/include/c++/13/bits/invoke.h:96 #18 std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)>::__call<bool, KWin::InputEventFilter* const&, 0ul, 1ul>(std::tuple<KWin::InputEventFilter* const&>&&, std::_Index_tuple<0ul, 1ul>) (__args=<optimized out>, this=<optimized out>) at /usr/include/c++/13/functional:506 #19 std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)>::operator()<KWin::InputEventFilter* const&, bool>(KWin::InputEventFilter* const&) (this=<optimized out>) at /usr/include/c++/13/functional:591 #20 __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)> >::operator()<QList<KWin::InputEventFilter*>::const_iterator>(QList<KWin::InputEventFilter*>::const_iterator) (__it=..., this=<optimized out>) at /usr/include/c++/13/bits/predefined_ops.h:318 #21 std::__find_if<QList<KWin::InputEventFilter*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)> > >(QList<KWin::InputEventFilter*>::const_iterator, QList<KWin::InputEventFilter*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)> >, std::random_access_iterator_tag) (__pred=..., __last=..., __first=...) at /usr/include/c++/13/bits/stl_algobase.h:2084 #22 std::__find_if<QList<KWin::InputEventFilter*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)> > >(QList<KWin::InputEventFilter*>::const_iterator, QList<KWin::InputEventFilter*>::const_iterator, __gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)> >) (__pred=..., __last=..., __first=...) at /usr/include/c++/13/bits/stl_algobase.h:2117 #23 std::find_if<QList<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)> >(QList<KWin::InputEventFilter*>::const_iterator, QList<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)>) (__pred=..., __last=..., __first=...) at /usr/include/c++/13/bits/stl_algo.h:3923 #24 std::none_of<QList<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)> >(QList<KWin::InputEventFilter*>::const_iterator, QList<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)>) (__pred=..., __last=..., __first=...) at /usr/include/c++/13/bits/stl_algo.h:477 #25 std::any_of<QList<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)> >(QList<KWin::InputEventFilter*>::const_iterator, QList<KWin::InputEventFilter*>::const_iterator, std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)>) (__pred=..., __last=..., __first=...) at /usr/include/c++/13/bits/stl_algo.h:496 #26 KWin::InputRedirection::processFilters<std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)> >(std::_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::KeyEvent*))(KWin::KeyEvent*)>) (function=..., this=<optimized out>) at /home/nate/kde/src/kwin/src/input.h:191 #27 KWin::KeyboardInputRedirection::processKey(unsigned int, KWin::InputRedirection::KeyboardKeyState, std::chrono::duration<long, std::ratio<1l, 1000000l> >, KWin::InputDevice*) (this=0x1ef1fe0, key=<optimized out>, state=<optimized out>, time=Python Exception <class 'gdb.error'>: value has been optimized out , device=<optimized out>) at /home/nate/kde/src/kwin/src/keyboard_input.cpp:268 #28 0x00007f59547ddb35 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffcdb7b90a0, r=0x1ef1fe0, this=0x2165540) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qobjectdefs_impl.h:363 #29 doActivate<false>(QObject*, int, void**) (sender=0x21650e0, signal_index=3, argv=0x7ffcdb7b90a0) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qobject.cpp:3992 #30 0x00007f59547d4757 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x21650e0, m=m@entry=0x7f595834df80 <KWin::InputDevice::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffcdb7b90a0) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qobject.cpp:4052 #31 0x00007f5957dbe52c in KWin::InputDevice::keyChanged(unsigned int, KWin::InputRedirection::KeyboardKeyState, std::chrono::duration<long, std::ratio<1l, 1000000l> >, KWin::InputDevice*) (this=this@entry=0x21650e0, _t1=<optimized out>, _t2=<optimized out>, _t2@entry=KWin::InputRedirection::KeyboardKeyPressed, _t3=_t3@entry=std::chrono::duration = { 20196731241us }, _t4=<optimized out>, _t4@entry=0x21650e0) at /home/nate/kde/build6/kwin/src/kwin_autogen/TAC5DWH4SE/moc_inputdevice.cpp:1028 #32 0x00007f595805807c in KWin::LibInput::Connection::processEvents() (this=<optimized out>) at /home/nate/kde/src/kwin/src/backends/libinput/connection.cpp:307 #33 0x00007f59547cf797 in QObject::event(QEvent*) (this=0x1ef0530, e=0x7f590c0086d0) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qobject.cpp:1391 #34 0x00007f5955bc0b08 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x1ef0530, e=0x7f590c0086d0) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/widgets/kernel/qapplication.cpp:3287 #35 0x00007f595477c308 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x1ef0530, event=0x7f590c0086d0) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1115 #36 0x00007f595477c50d in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1533 #37 0x00007f595477fd75 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=data@entry=0x1e7c250) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qcoreapplication.cpp:1895 #38 0x00007f59548fcca6 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1e81940, flags=...) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:432 #39 0x00007f59555434c2 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/gui/platform/unix/qunixeventdispatcher.cpp:27 #40 0x00007f5954788e93 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffcdb7b9580, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/global/qflags.h:34 #41 0x00007f5954784b3d in QCoreApplication::exec() () at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/corelib/global/qflags.h:74 #42 0x00007f5954ff85cd in QGuiApplication::exec() () at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/gui/kernel/qguiapplication.cpp:1894 #43 0x00007f5955bc0a79 in QApplication::exec() () at /usr/src/debug/qt6-qtbase-6.5.1-1.fc38.x86_64/src/widgets/kernel/qapplication.cpp:2566 #44 0x0000000000436358 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nate/kde/src/kwin/src/main_wayland.cpp:613 SOFTWARE/OS VERSIONS Operating System: Fedora Linux 38 KDE Plasma Version: 5.27.80 KDE Frameworks Version: 5.240.0 Qt Version: 6.5.1 Kernel Version: 6.3.6-200.fc38.x86_64 (64-bit) Graphics Platform: Wayland Processors: 8 × Intel® Core™ i7-10510U CPU @ 1.80GHz Memory: 15.2 GiB of RAM Graphics Processor: Mesa Intel® UHD Graphics -- You are receiving this mail because: You are watching all bug changes.