Summary: | Crash in ViewerWindow::showInlineMessage() When Trying to Record Screen With Spectacle | ||
---|---|---|---|
Product: | [Applications] Spectacle | Reporter: | Feng Lengshun <7erxk5uav> |
Component: | General | Assignee: | Noah Davis <noahadvs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | 7erxk5uav, adampoke111, armoire.mountable405, duha.bugs, fabrice.salvaire, kde, med.medin.2014, nate, nerumo, patrick.liniger, sph, t.lobner, w0ie2m7jx, wish.rirf |
Priority: | HI | Keywords: | drkonqi |
Version: | 23.04.0 | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 24.02 | |
Sentry Crash Report: | |||
Attachments: | New crash information added by DrKonqi |
Description
Feng Lengshun
2023-05-04 04:54:51 UTC
*** 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. *** |