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.

Reply via email to