https://bugs.kde.org/show_bug.cgi?id=470027

            Bug ID: 470027
           Summary: Clicking on Finish recording crashes Spectacle
    Classification: Applications
           Product: Spectacle
           Version: 23.04.1
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: General
          Assignee: noaha...@gmail.com
          Reporter: med.medin.2...@gmail.com
                CC: k...@david-redondo.de
  Target Milestone: ---

After clicking on "Finish recording" in Spectacle, the final webm file is
saved, but sometimes it's missing some seconds at the end, it's like the video
is not stopped at the moment when I click on "Finish recording", because I can
clearly see the time counter is still increasing for a moment before stopping,
then Spectacle becomes totally frozen for more than 10 seconds and is forced to
close with the following generated crash:


[Thread debugging using libthread_db enabled]                                   
Using host libthread_db library "/usr/lib/libthread_db.so.1".
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 0x7ff9d4edc100 (LWP 3216))]
(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:1149
#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  0x0000562ac431f052 in ViewerWindow::showInlineMessage(QString const&,
QMap<QString, QVariant> const&) (this=0x0, qmlFile=..., properties=...)
    at /usr/src/debug/spectacle/spectacle-23.04.1/src/Gui/ViewerWindow.cpp:146
#5  0x0000562ac43165f6 in ViewerWindow::showSavedVideoMessage(QUrl const&)
(messageArgument=..., this=0x0) at
/usr/src/debug/spectacle/spectacle-23.04.1/src/Gui/ViewerWindow.cpp:161
#6  operator() (path=<optimized out>, __closure=0x562ac5d2ef60) at
/usr/src/debug/spectacle/spectacle-23.04.1/src/SpectacleCore.cpp:225
#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_=0x562ac5d2ef50, r=<optimized out>, a=<optimized out>,
ret=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
#10 0x00007ff9e82beb41 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7fff8334e600, r=<optimized out>, this=0x562ac5d2ef50, 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=0x562ac5baa570,
signal_index=4, argv=0x7fff8334e600) at kernel/qobject.cpp:3923
#12 0x0000562ac433b0c7 in VideoPlatform::recordingSaved(QString const&)
(_t1=..., this=0x562ac5baa570)
    at
/usr/src/debug/spectacle/build/src/spectacle_autogen/UWYFJWVAJO/moc_VideoPlatform.cpp:244
#13 operator() (__closure=0x562ac62406a0) at
/usr/src/debug/spectacle/spectacle-23.04.1/src/Platforms/VideoPlatformWayland.cpp:56
#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_=0x562ac6240690, r=<optimized out>, a=<optimized out>,
ret=<optimized out>)
    at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
#17 0x00007ff9e82beb41 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7fff8334e6c0, r=<optimized out>, this=0x562ac6240690, 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=0x562ac61589b0,
signal_index=8, argv=0x7fff8334e6c0) at kernel/qobject.cpp:3923
#19 0x00007ff9e82b1c80 in QObject::event(QEvent*) (this=0x562ac61589b0,
e=0x7ff9ac00ff40) at kernel/qobject.cpp:1347
#20 0x00007ff9e9b78b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x562ac61589b0, e=0x7ff9ac00ff40) at
kernel/qapplication.cpp:3640
#21 0x00007ff9e828e028 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x562ac61589b0, event=0x7ff9ac00ff40) at
kernel/qcoreapplication.cpp:1064
#22 0x00007ff9e828e093 in QCoreApplication::sendEvent(QObject*, QEvent*)
(receiver=<optimized out>, event=<optimized out>) at
kernel/qcoreapplication.cpp:1462
#23 0x00007ff9e828eb33 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) (receiver=0x0, event_type=0, data=0x562ac5a725d0) at
kernel/qcoreapplication.cpp:1821
#24 0x00007ff9e82d4f58 in postEventSourceDispatch(GSource*, GSourceFunc,
gpointer) (s=0x562ac5a903d0) at kernel/qeventdispatcher_glib.cpp:277
#25 0x00007ff9e5f0f53b in g_main_dispatch (context=0x7ff9d0000ee0) at
../glib/glib/gmain.c:3460
#26 g_main_context_dispatch (context=0x7ff9d0000ee0) at
../glib/glib/gmain.c:4200
#27 0x00007ff9e5f6c219 in g_main_context_iterate.constprop.0
(context=0x7ff9d0000ee0, block=1, dispatch=1, self=<optimized out>) at
../glib/glib/gmain.c:4276
#28 0x00007ff9e5f0e1a2 in g_main_context_iteration (context=0x7ff9d0000ee0,
may_block=1) at ../glib/glib/gmain.c:4343
--Type <RET> for more, q to quit, c to continue without paging--c
#29 0x00007ff9e82d8d3c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x562ac5a5c640, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#30 0x00007ff9e828668c in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fff8334eb40,
flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#31 0x00007ff9e82912f9 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#32 0x00007ff9e873b052 in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1870
#33 0x00007ff9e9b76f2a in QApplication::exec() () at
kernel/qapplication.cpp:2832
#34 0x0000562ac42e7b65 in main(int, char**) (argc=<optimized out>,
argv=<optimized out>) at
/usr/src/debug/spectacle/spectacle-23.04.1/src/Main.cpp:127
(gdb)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to