Application: spectacle (23.04.0) Qt Version: 5.15.9 Frameworks Version: 5.105.0 Operating System: Linux 6.1.26-x64v3-xanmod1 x86_64 Windowing System: Wayland Distribution: KDE neon 5.27 DrKonqi: 5.27.4 [KCrashBackend] -- Information about the crash: Spectacle, when run, doesn't show the Recording tab. Taking a screenshot makes the Recording tab appear. Tried to record screen, preview doesn't appear in spectacle, when recording is stopped, Spectacle crashed. Might be an issue with pipewire -- I installed KDE Neon, then installed Wayland session and pipewire to go with it (though OBS Window / Screen recording worked just fine). Please tell me if there's any other info that might be useful. The crash can be reproduced every time. -- Backtrace: Application: Spectacle (spectacle), signal: Segmentation fault [KCrash Handler] #4 0x00007fc93b6eff74 in QQuickView::rootObject() const () from /lib/x86_64-linux-gnu/libQt5Quick.so.5 #5 0x000056083d56d672 in ViewerWindow::showInlineMessage (this=0x0, qmlFile=..., properties=...) at ./src/Gui/ViewerWindow.cpp:146 #6 0x000056083d565636 in ViewerWindow::showSavedVideoMessage (messageArgument=..., this=0x0) at ./src/Gui/ViewerWindow.cpp:161 #7 operator() (path=..., __closure=0x56083e5d4e30) at ./src/SpectacleCore.cpp:225 #8 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<const QString&>, void, SpectacleCore::SpectacleCore(QObject*)::<lambda(const QString&)> >::call (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146 #9 QtPrivate::Functor<SpectacleCore::SpectacleCore(QObject*)::<lambda(const QString&)>, 1>::call<QtPrivate::List<QString const&>, void> (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256 #10 QtPrivate::QFunctorSlotObject<SpectacleCore::SpectacleCore(QObject*)::<lambda(const QString&)>, 1, QtPrivate::List<const QString&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x56083e5d4e20, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:443 #11 0x00007fc93a2f41e4 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #12 0x000056083d589766 in VideoPlatform::recordingSaved (_t1=..., this=0x56083e5b6a90) at ./obj-x86_64-linux-gnu/src/spectacle_autogen/UWYFJWVAJO/moc_VideoPlatform.cpp:244 #13 operator() (__closure=0x56083e57de10) at ./src/Platforms/VideoPlatformWayland.cpp:56 #14 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, VideoPlatformWayland::startRecording(const QString&, VideoPlatform::RecordingMode, const RecordingOption&, bool)::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146 #15 QtPrivate::Functor<VideoPlatformWayland::startRecording(const QString&, VideoPlatform::RecordingMode, const RecordingOption&, bool)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256 #16 QtPrivate::QFunctorSlotObject<VideoPlatformWayland::startRecording(const QString&, VideoPlatform::RecordingMode, const RecordingOption&, bool)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x56083e57de00, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:443 #17 0x00007fc93a2f41e4 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #18 0x00007fc93a2e9bee in QObject::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #19 0x00007fc93bb6c793 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #20 0x00007fc93a2bc18a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #21 0x00007fc93a2bf277 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #22 0x00007fc93a316597 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #23 0x00007fc93791bd3b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #24 0x00007fc9379706c8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #25 0x00007fc9379193e3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #26 0x00007fc93a315be8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #27 0x00007fc93a2baaab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #28 0x00007fc93a2c3044 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #29 0x000056083d537845 in main (argc=<optimized out>, argv=<optimized out>) at ./src/Main.cpp:109 [Inferior 1 (process 30828) detached] Reported using DrKonqi
*** Bug 469897 has been marked as a duplicate of this bug. ***
*** Bug 470027 has been marked as a duplicate of this bug. ***
Created attachment 159344 [details] New crash information added by DrKonqi spectacle (23.04.1) using Qt 5.15.9 Was trying to record a video, clicked Finish recording, Spectacle crashed. -- Backtrace (Reduced): #4 0x00007fc611b23794 in QQuickView::rootObject() const () from /lib64/libQt5Quick.so.5 #5 0x000055b7fefab646 in ViewerWindow::showInlineMessage(QString const&, QMap<QString, QVariant> const&) () #7 0x00007fc6106e8651 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5 #8 0x000055b7fefc7b83 in QtPrivate::QFunctorSlotObject<VideoPlatformWayland::startRecording(QString const&, VideoPlatform::RecordingMode, std::variant<QScreen*, QRect, QString> const&, bool)::{lambda()#2}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () #9 0x00007fc6106e8651 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
*** Bug 471830 has been marked as a duplicate of this bug. ***
This crash is always reproducible on : Operating System: Manjaro Linux KDE Plasma Version: 5.27.9 KDE Frameworks Version: 5.111.0 Qt Version: 5.15.11 Kernel Version: 6.6.1-1-MANJARO (64-bit) Graphics Platform: Wayland Backtrace: Core was generated by `/usr/bin/spectacle'. Program terminated with signal SIGSEGV, Segmentation fault. #0 QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator-> (this=<optimized out>, this=<optimized out>) at /usr/include/qt/QtCore/qscopedpointer.h:116 116 T *operator->() const noexcept [Current thread is 1 (Thread 0x7f1c93abfe80 (LWP 10727))] (gdb) bt #0 QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator->() const (this=0x8, this=<optimized out>) at /usr/include/qt/QtCore/qscopedpointer.h:116 #1 qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const>(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const&) (ptr=..., ptr=<optimized out>) at /usr/include/qt/QtCore/qglobal.h:1151 #2 QQuickView::d_func() const (this=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickview.h:111 #3 QQuickView::rootObject() const (this=this@entry=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickview.cpp:603 #4 0x0000558155231512 in ViewerWindow::showInlineMessage(QString const&, QMap<QString, QVariant> const&) (this=0x0, qmlFile=..., properties=...) at /usr/src/debug/spectacle/spectacle-23.08.3/src/Gui/ViewerWindow.cpp:146 #5 0x0000558155220cb6 in ViewerWindow::showSavedVideoMessage(QUrl const&) (messageArgument=..., this=0x0) at /usr/src/debug/spectacle/spectacle-23.08.3/src/Gui/ViewerWindow.cpp:161 #6 operator() (path=<optimized out>, __closure=0x558156b47710) at /usr/src/debug/spectacle/spectacle-23.08.3/src/SpectacleCore.cpp:233 #7 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<const QString&>, void, SpectacleCore::SpectacleCore(QObject*)::<lambda(const QString&)> >::call (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146 #8 QtPrivate::Functor<SpectacleCore::SpectacleCore(QObject*)::<lambda(const QString&)>, 1>::call<QtPrivate::List<QString const&>, void> (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256 #9 QtPrivate::QFunctorSlotObject<SpectacleCore::SpectacleCore(QObject*)::<lambda(const QString&)>, 1, QtPrivate::List<const QString&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x558156b47700, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443 #10 0x00007f1ca6ed1097 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff926b6e40, r=<optimized out>, this=0x558156b47700, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #11 doActivate<false>(QObject*, int, void**) (sender=0x558156ac9350, signal_index=4, argv=0x7fff926b6e40) at kernel/qobject.cpp:3925 #12 0x000055815524f957 in VideoPlatform::recordingSaved(QString const&) (_t1=..., this=0x558156ac9350) at /usr/src/debug/spectacle/build/src/spectacle_autogen/include/moc_VideoPlatform.cpp:244 #13 operator() (__closure=0x558156f460d0) at /usr/src/debug/spectacle/spectacle-23.08.3/src/Platforms/VideoPlatformWayland.cpp:54 #14 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, VideoPlatformWayland::startRecording(const QString&, VideoPlatform::RecordingMode, const VideoPlatform::RecordingOption&, bool)::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146 #15 QtPrivate::Functor<VideoPlatformWayland::startRecording(const QString&, VideoPlatform::RecordingMode, const VideoPlatform::RecordingOption&, bool)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256 #16 QtPrivate::QFunctorSlotObject<VideoPlatformWayland::startRecording(const QString&, VideoPlatform::RecordingMode, const VideoPlatform::RecordingOption&, bool)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x558156f460c0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443 #17 0x00007f1ca6ed1097 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff926b6f00, r=<optimized out>, this=0x558156f460c0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #18 doActivate<false>(QObject*, int, void**) (sender=0x558156a94910, signal_index=8, argv=0x7fff926b6f00) at kernel/qobject.cpp:3925 #19 0x00007f1ca6ec3bd4 in QObject::event(QEvent*) (this=0x558156a94910, e=0x7f1c5c00ff90) at kernel/qobject.cpp:1347 #20 0x00007f1ca87788ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x558156a94910, e=0x7f1c5c00ff90) at kernel/qapplication.cpp:3640 #21 0x00007f1ca6e9c168 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x558156a94910, event=0x7f1c5c00ff90) at kernel/qcoreapplication.cpp:1064 #22 0x00007f1ca6ea10cb in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x5581569577b0) at kernel/qcoreapplication.cpp:1821 #23 0x00007f1ca6ee7138 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x558156978620) at kernel/qeventdispatcher_glib.cpp:277 #24 0x00007f1ca470df69 in g_main_dispatch (context=0x7f1c8c000ec0) at ../glib/glib/gmain.c:3476 #25 0x00007f1ca476c327 in g_main_context_dispatch_unlocked (context=0x7f1c8c000ec0) at ../glib/glib/gmain.c:4284 #26 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f1c8c000ec0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349 --Type <RET> for more, q to quit, c to continue without paging--c #27 0x00007f1ca470c162 in g_main_context_iteration (context=0x7f1c8c000ec0, may_block=1) at ../glib/glib/gmain.c:4414 #28 0x00007f1ca6eeaf7c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x558156941220, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #29 0x00007f1ca6e9ae74 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff926b7380, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #30 0x00007f1ca6e9c313 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #31 0x00007f1ca733bf02 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870 #32 0x00007f1ca8776cda in QApplication::exec() () at kernel/qapplication.cpp:2832 #33 0x00005581551fdb25 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/spectacle/spectacle-23.08.3/src/Main.cpp:127
Confirming this, can reproduce on: Operating System: Arch Linux KDE Plasma Version: 5.27.10 KDE Frameworks Version: 5.114.0 Qt Version: 5.15.12 Kernel Version: 6.7.2-arch1-1 (64-bit) Graphics Platform: offscreen Processors: 12 × AMD Ryzen 5 2600X Six-Core Processor Memory: 15.6 GiB of RAM Graphics Processor: AMD Radeon RX 580 Series For me it doesn't crash when I try to stop the recording but it doesn't stop the recording immediately. If I wait 5-10 seconds the recording stops without crash. If I click stop recording and don't wait but take a screenshot crash with the same backtrace: #6 QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::operator-> (this=0x8, this=<optimized out>) at /usr/include/qt/QtCore/qscopedpointer.h:116 #7 qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const> (ptr=..., ptr=<optimized out>) at /usr/include/qt/QtCore/qglobal.h:1151 #8 QQuickView::d_func (this=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickview.h:111 #9 QQuickView::rootObject (this=this@entry=0x0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickview.cpp:603 #10 0x000063a9808fd512 in ViewerWindow::showInlineMessage (this=0x0, qmlFile=..., properties=...) at /usr/src/debug/spectacle/spectacle-23.08.4/src/Gui/ViewerWindow.cpp:146 #11 0x000063a9808eccb6 in ViewerWindow::showSavedVideoMessage (messageArgument=..., this=0x0) at /usr/src/debug/spectacle/spectacle-23.08.4/src/Gui/ViewerWindow.cpp:161 #12 operator() (path=<optimized out>, __closure=0x63a9824e6ae0) at /usr/src/debug/spectacle/spectacle-23.08.4/src/SpectacleCore.cpp:233 #13 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<const QString&>, void, SpectacleCore::SpectacleCore(QObject*)::<lambda(const QString&)> >::call (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146 #14 QtPrivate::Functor<SpectacleCore::SpectacleCore(QObject*)::<lambda(const QString&)>, 1>::call<QtPrivate::List<QString const&>, void> (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256 #15 QtPrivate::QFunctorSlotObject<SpectacleCore::SpectacleCore(QObject*)::<lambda(const QString&)>, 1, QtPrivate::List<const QString&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x63a9824e6ad0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
*** Bug 480961 has been marked as a duplicate of this bug. ***
Actually this is probably fixed with Plasma 6. I thought I can reproduce this with Git Master, but it seems to be a different unrelated problem on Plasma 6: https://bugs.kde.org/show_bug.cgi?id=479058
*** Bug 474556 has been marked as a duplicate of this bug. ***
Fixed with the commits in https://invent.kde.org/graphics/spectacle/-/merge_requests/283.
*** Bug 480271 has been marked as a duplicate of this bug. ***
*** Bug 479801 has been marked as a duplicate of this bug. ***
*** Bug 479522 has been marked as a duplicate of this bug. ***
*** Bug 484733 has been marked as a duplicate of this bug. ***