Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shotcut crashes after timeline undo operations with MLT 7.20.0 #959

Open
BSDKaffee opened this issue Oct 20, 2023 · 2 comments
Open

Shotcut crashes after timeline undo operations with MLT 7.20.0 #959

BSDKaffee opened this issue Oct 20, 2023 · 2 comments

Comments

@BSDKaffee
Copy link

MLT version 7.20.0; FreeBSD 15-CURRENT; all versions of Shotcut seem to be affected, even Qt5-based versions like 22.06.23. Kdenlive does not seem to be affected.

After b4943c5, Shotcut consistently crashes after opening a project, selecting a clip from the timeline, hitting Ctrl+X, then Ctrl+Z, similar to the issue noted in that commit by @ddennedy. Subsequent commits attempting to resolve the issue 8a821cc and 5eefee5 have had no effect. Applying 20b9bc7 from #951 on top of HEAD resolves the issue for me.

Crash log from Shotcut 23.09.29 built against MLT 7.20.0:

#0  check_and_init_mutex (mutex=0x5a5a5a5a5a5a5da2, m=<optimized out>) at /usr/src/lib/libthr/thread/thr_mutex.c:595
595             *m = *mutex;
[Current thread is 1 (LWP 772468)]
(gdb) bt
#0  check_and_init_mutex (mutex=0x5a5a5a5a5a5a5da2, m=<optimized out>) at /usr/src/lib/libthr/thread/thr_mutex.c:595
#1  __Tthr_mutex_lock (mutex=0x5a5a5a5a5a5a5da2) at /usr/src/lib/libthr/thread/thr_mutex.c:751
#2  0x0000000828b8956b in mlt_properties_lock (self=0x4cd9cc64180)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_properties.c:2187
#3  0x0000000828b89a8c in mlt_properties_find (self=0x4cd9cc64180, name=0x828b60b48 "_events")
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_properties.c:542
#4  0x0000000828b8a841 in mlt_properties_get_data (self=0x4cd9cc64180, name=0x828b60b48 "_events", length=0x0)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_properties.c:1226
#5  0x0000000828b751e3 in mlt_events_fetch (self=0x4cd9cc64180)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_events.c:450
#6  0x0000000828b75b59 in mlt_events_disconnect (self=0x4cd9cc64180, listener_data=0x4cdd9f61400)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_events.c:347
#7  0x0000000873948e51 in producer_avformat_close (self=0x4cdd9f61400)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/modules/avformat/producer_avformat.c:3855
#8  0x0000000828b6e0d3 in cache_object_close (cache=0x4cd59d34a00, object=0x4cd9cc64180, data=0x4cdd9f61400)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_cache.c:145
#9  0x0000000828b6dfc6 in mlt_cache_item_close (item=0x4cdda197e70)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_cache.c:189
#10 0x0000000828b8e36f in clear_property (self=0x4cdf118cb60)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_property.c:113
#11 0x0000000828b8f8e5 in mlt_property_close (self=0x4cdf118cb60)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_property.c:884
#12 0x0000000828b8b744 in mlt_properties_close (self=0x4cdd881bdc0)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_properties.c:1508
#13 0x0000000828b7934a in mlt_frame_close (self=0x4cdd881bdc0)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_frame.c:827
#14 0x0000000828b8e36f in clear_property (self=0x4cdd89f53c0)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_property.c:113
#15 0x0000000828b8f8e5 in mlt_property_close (self=0x4cdd89f53c0)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_property.c:884
#16 0x0000000828b8b744 in mlt_properties_close (self=0x4cdd881bd20)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_properties.c:1508
#17 0x0000000828b7934a in mlt_frame_close (self=0x4cdd881bd20)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/framework/mlt_frame.c:827
#18 0x0000000826720f1b in Mlt::Frame::~Frame() (this=0x4cdd8809158)
    at /usr/home/jhale/src/freebsd/ports/multimedia/mlt7/work/mlt-7.20.0/src/mlt++/MltFrame.cpp:53
#19 0x0000000000777e0a in FrameData::~FrameData() (this=0x4cdd8809150)
    at /usr/home/jhale/src/freebsd/ports/multimedia/shotcut/work/src/shotcut/src/sharedframe.cpp:32
#20 0x0000000000777e9f in QExplicitlySharedDataPointer<FrameData>::reset(FrameData*) (this=0x4cd9ca37210, ptr=0x4cdd8809180)
    at /usr/local/include/qt6/QtCore/qshareddata.h:178
#21 0x0000000000777d34 in QExplicitlySharedDataPointer<FrameData>::operator=(QExplicitlySharedDataPointer<FrameData> const&)
    (this=0x4cd9ca37210, o=...) at /usr/local/include/qt6/QtCore/qshareddata.h:184
#22 0x0000000000776ee1 in SharedFrame::operator=(SharedFrame const&) (this=0x4cd9ca37210, other=...)
    at /usr/home/jhale/src/freebsd/ports/multimedia/shotcut/work/src/shotcut/src/sharedframe.cpp:61
--Type <RET> for more, q to quit, c to continue without paging--
#23 0x0000000000834a27 in AudioWaveformScopeWidget::refreshScope(QSize const&, bool) (this=0x4cd9ca37100, size=..., full=false)
    at /usr/home/jhale/src/freebsd/ports/multimedia/shotcut/work/src/shotcut/src/widgets/scopes/audiowaveformscopewidget.cpp:80
#24 0x0000000000836d2e in ScopeWidget::refreshInThread() (this=0x4cd9ca37100)
    at /usr/home/jhale/src/freebsd/ports/multimedia/shotcut/work/src/shotcut/src/widgets/scopes/scopewidget.cpp:68
#25 0x00000000008376c9 in std::__1::__invoke[abi:v160006]<void (ScopeWidget::*&)(), ScopeWidget*&, , void>(void (ScopeWidget::*&)(), ScopeWidget*&) (__f=@0x90e7d7d38: &virtual ScopeWidget::refreshInThread(), __a0=@0x90e7d7d30: 0x4cd9ca37100) at /usr/include/c++/v1/__functional/invoke.h:359
#26 0x000000000083764d in std::__1::invoke[abi:v160006]<void (ScopeWidget::*&)(), ScopeWidget*&>(void (ScopeWidget::*&)(), ScopeWidget*&)
    (__f=@0x90e7d7d38: &virtual ScopeWidget::refreshInThread(), __args=@0x90e7d7d30: 0x4cd9ca37100)
    at /usr/include/c++/v1/__functional/invoke.h:539
#27 0x0000000000837603 in QtConcurrent::StoredFunctionCall<void (ScopeWidget::*)(), ScopeWidget*>::runFunctor()::{lambda(void (ScopeWidget::*)(), ScopeWidget*)#1}::operator()(void (ScopeWidget::*)(), ScopeWidget*) const
    (this=0x90e7d7e20, function=&virtual ScopeWidget::refreshInThread(), args=0x4cd9ca37100)
    at /usr/local/include/qt6/QtConcurrent/qtconcurrentstoredfunctioncall.h:116
#28 0x000000000083756f in std::__1::__invoke[abi:v160006]<QtConcurrent::StoredFunctionCall<void (ScopeWidget::*)(), ScopeWidget*>::runFunctor()::{lambda(void (ScopeWidget::* const&)(), ScopeWidget*)#1}, void (ScopeWidget::*)(), ScopeWidget*>(QtConcurrent::StoredFunctionCall<void (ScopeWidget::*)(), ScopeWidget*>::runFunctor()::{lambda(void (ScopeWidget::* const&)(), ScopeWidget*)#1}, void (ScopeWidget::*&&)(), ScopeWidget*&&)
    (__f=..., __args=@0x4cdecd53d20: &virtual ScopeWidget::refreshInThread(), __args=@0x4cdecd53d30: 0x4cd9ca37100)
    at /usr/include/c++/v1/__functional/invoke.h:394
#29 0x000000000083751e in std::__1::__apply_tuple_impl[abi:v160006]<QtConcurrent::StoredFunctionCall<void (ScopeWidget::*)(), ScopeWidget*>::runFunctor()::{lambda(void (ScopeWidget::* const&)(), ScopeWidget*)#1}, std::__1::tuple<void (ScopeWidget::*)(), ScopeWidget*>, 0ul, 1ul>(QtConcurrent::StoredFunctionCall<void (ScopeWidget::*)(), ScopeWidget*>::runFunctor()::{lambda(void (ScopeWidget::* const&)(), ScopeWidget*)#1}, std::__1::tuple<void (ScopeWidget::*)(), ScopeWidget*>&&, std::__1::__tuple_indices<0ul, 1ul>) (__f=..., __t=...) at /usr/include/c++/v1/tuple:1816
#30 0x00000000008374cd in std::__1::apply[abi:v160006]<QtConcurrent::StoredFunctionCall<void (ScopeWidget::*)(), ScopeWidget*>::runFunctor()::{lambda(void (ScopeWidget::* const&)(), ScopeWidget*)#1}, std::__1::tuple<void (ScopeWidget::*)(), ScopeWidget*> >(QtConcurrent::StoredFunctionCall<void (ScopeWidget::*)(), ScopeWidget*>::runFunctor()::{lambda(void (ScopeWidget::* const&)(), ScopeWidget*)#1}, std::__1::tuple<void (ScopeWidget::*)(), ScopeWidget*>&&) (__f=..., __t=...) at /usr/include/c++/v1/tuple:1825
#31 0x0000000000837484 in QtConcurrent::StoredFunctionCall<void (ScopeWidget::*)(), ScopeWidget*>::runFunctor() (this=0x4cdecd53d00)
    at /usr/local/include/qt6/QtConcurrent/qtconcurrentstoredfunctioncall.h:120
#32 0x00000000004ccfa7 in QtConcurrent::RunFunctionTaskBase<void>::run() (this=0x4cdecd53d00)
    at /usr/local/include/qt6/QtConcurrent/qtconcurrentrunbase.h:83
#33 0x0000000832c9e672 in  () at /usr/local/lib/qt6/libQt6Core.so.6
#34 0x0000000832c9a5b0 in  () at /usr/local/lib/qt6/libQt6Core.so.6
#35 0x00000008348f1a75 in thread_start (curthread=0x4cddaaa5e00) at /usr/src/lib/libthr/thread/thr_create.c:290
#36 0x0000000000000000 in  ()
@ddennedy
Copy link
Member

I have not been able to reproduce it or my steps in the comment on b4943c5

@BSDKaffee
Copy link
Author

Strange. Even after creating a new project, opening a file, adding the source to the playlist, dragging it to the timeline, then hitting CTRL+Z, it crashes. After applying 20b9bc7 or before b4943c5 this does not happen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants