SUMMARY Tokodon freezes when i try to play back some media (mostly a gif) in my timeline a couple times. Auto-playback was off in the settings(happens anyway with it on) so i pressed the Play button a couple times. The playback itself can be kind of buggy too. But after scrolling a bit further after this the main window just freezes. I've tried to get a backtrace. STEPS TO REPRODUCE 1. Manually play back a gif in the timeline a couple times 2. Scroll a little further or back OBSERVED RESULT Main window freezes EXPECTED RESULT window doesn't freeze Backtrace: Continuing. [Thread 0x7f20e95f86c0 (LWP 11549) exited] [Thread 0x7f20e8df76c0 (LWP 11550) exited] Thread 1 "tokodon" received signal SIGINT, Interrupt. futex_wait (private=0, expected=2, futex_word=0x7f21043396e0) at ../sysdeps/nptl/futex-internal.h:146 146 int err = lll_futex_timed_wait (futex_word, expected, NULL, private); #0 futex_wait (private=0, expected=2, futex_word=0x7f21043396e0) at ../sysdeps/nptl/futex-internal.h:146 __ret = -512 err = <optimized out> #1 __GI___lll_lock_wait (futex=futex@entry=0x7f21043396e0, private=0) at lowlevellock.c:49 #2 0x00007f2187aa1efa in lll_mutex_lock_optimized (mutex=0x7f21043396e0) at pthread_mutex_lock.c:48 __futex = 0x7f21043396e0 private = <optimized out> id = <optimized out> type = <optimized out> __PRETTY_FUNCTION__ = "___pthread_mutex_lock" id = <optimized out> #3 ___pthread_mutex_lock (mutex=0x7f21043396e0) at pthread_mutex_lock.c:128 id = <optimized out> type = <optimized out> __PRETTY_FUNCTION__ = "___pthread_mutex_lock" id = <optimized out> #4 0x00007f214051523e in post_activate (new_mode=<optimized out>, pad=<optimized out>) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:1050 res = 0 old = <optimized out> new = <optimized out> dir = <optimized out> peer = <optimized out> __func__ = "activate_mode_internal" #5 activate_mode_internal (pad=pad@entry=0x7f21043394d0 [GstPad|sink], parent=parent@entry=0x7f2104339060 [GstObject|avdec_h264-0], mode=mode@entry=GST_PAD_MODE_PUSH, active=active@entry=0) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:1228 res = 0 old = <optimized out> new = <optimized out> dir = <optimized out> peer = <optimized out> __func__ = "activate_mode_internal" #6 0x00007f2140515900 in gst_pad_set_active (pad=0x7f21043394d0 [GstPad|sink], active=0) at ../gstreamer/subprojects/gstreamer/gst/gstpad.c:1119 parent = 0x7f2104339060 [GstObject|avdec_h264-0] old = GST_PAD_MODE_PUSH ret = 0 __func__ = "gst_pad_set_active" #7 0x00007f21404fb187 in activate_pads.lto_priv.1.lto_priv () at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3176 #8 0x00007f21405041cc in gst_iterator_fold (it=0x55def67c42c0, func=0x7f21404fb160 <activate_pads.lto_priv.1.lto_priv>, ret=0x7ffe452f4070, user_data=0x7ffe452f40cc) at ../gstreamer/subprojects/gstreamer/gst/gstiterator.c:617 item = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str {g_type = , data = {{v_int = 70489296, v_uint = 70489296, v_long = 139779781137616, v_ulong = 139779781137616, v_int64 = 139779781137616, v_uint64 = 139779781137616, v_float = 2.11096802e-36, v_double = 6.9060387843304341e-310, v_pointer = 0x7f21043394d0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} result = GST_ITERATOR_OK __func__ = "gst_iterator_fold" #9 0x00007f2140575cdd in iterator_activate_fold_with_resync.constprop.0 (iter=iter@entry=0x55def67c42c0, user_data=user_data@entry=0x7ffe452f40cc, func=<optimized out>) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3205 ires = <optimized out> ret = {g_type = 0x14, data = {{v_int = 1, v_uint = 1, v_long = 1, v_ulong = 1, v_int64 = 1, v_uint64 = 1, v_float = 1.40129846e-45, v_double = 4.9406564584124654e-324, v_pointer = 0x1}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} #10 0x00007f21404f8a67 in gst_element_pads_activate (element=element@entry=0x7f2104339060 [GstElement|avdec_h264-0], active=<optimized out>, active@entry=0) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3249 iter = 0x55def67c42c0 res = 1 __func__ = "gst_element_pads_activate" #11 0x00007f21404fb341 in gst_element_change_state_func (element=0x7f2104339060 [GstElement|avdec_h264-0], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3315 l = <optimized out> state = GST_STATE_PAUSED next = GST_STATE_READY result = GST_STATE_CHANGE_SUCCESS __func__ = "gst_element_change_state_func" #12 0x00007f214022cc15 in gst_video_decoder_change_state (element=0x7f2104339060 [GstElement|avdec_h264-0], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2871 decoder = 0x7f2104339060 [GstVideoDecoder|avdec_h264-0] decoder_class = 0x7f2104335cc0 ret = <optimized out> __func__ = "gst_video_decoder_change_state" #13 0x00007f21404fa6e1 in gst_element_change_state (element=element@entry=0x7f2104339060 [GstElement|avdec_h264-0], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3093 oclass = 0x7f2104335cc0 ret = GST_STATE_CHANGE_SUCCESS __func__ = "gst_element_change_state" #14 0x00007f21404fad33 in gst_element_set_state_func (element=0x7f2104339060 [GstElement|avdec_h264-0], state=GST_STATE_READY) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3047 current = GST_STATE_PAUSED next = <optimized out> old_pending = <optimized out> ret = <optimized out> transition = GST_STATE_CHANGE_PAUSED_TO_READY old_ret = <optimized out> __func__ = "gst_element_set_state_func" #15 0x00007f21404d32ec in gst_bin_element_set_state (next=GST_STATE_READY, current=GST_STATE_PAUSED, start_time=0 [0:00:00.000000000], base_time=7635969163921 [2:07:15.969163921], element=0x7f2104339060 [GstElement|avdec_h264-0], bin=0x7f2118008100 [GstBin|decodebin0]) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2582 child_current = <optimized out> found = <optimized out> ret = <optimized out> locked = <optimized out> child_pending = <optimized out> child = 0x7f2104339060 [GstElement|avdec_h264-0] bin = 0x7f2118008100 [GstBin|decodebin0] ret = <optimized out> current = GST_STATE_PAUSED next = GST_STATE_READY have_async = 0 have_no_preroll = 0 base_time = 7635969163921 [2:07:15.969163921] done = 0 data = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str {g_type = , data = {{v_int = 70488160, v_uint = 70488160, v_long = 139779781136480, v_ulong = 139779781136480, v_int64 = 139779781136480, v_uint64 = 139779781136480, v_float = 2.11076426e-36, v_double = 6.9060387842743082e-310, v_pointer = 0x7f2104339060}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} __func__ = "gst_bin_change_state_func" #16 gst_bin_change_state_func (element=0x7f2118008100 [GstElement|decodebin0], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2931 child = 0x7f2104339060 [GstElement|avdec_h264-0] bin = 0x7f2118008100 [GstBin|decodebin0] ret = <optimized out> current = GST_STATE_PAUSED next = GST_STATE_READY have_async = 0 have_no_preroll = 0 base_time = 7635969163921 [2:07:15.969163921] done = 0 data = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str {g_type = , data = {{v_int = 70488160, v_uint = 70488160, v_long = 139779781136480, v_ulong = 139779781136480, v_int64 = 139779781136480, v_uint64 = 139779781136480, v_float = 2.11076426e-36, v_double = 6.9060387842743082e-310, v_pointer = 0x7f2104339060}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} __func__ = "gst_bin_change_state_func" #17 0x00007f2133e4fe4d in gst_decode_bin_change_state (element=0x7f2118008100 [GstElement|decodebin0], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:5468 bret = <optimized out> ret = GST_STATE_CHANGE_SUCCESS dbin = 0x7f2118008100 [GstDecodeBin|decodebin0] chain_to_free = 0x0 __func__ = "gst_decode_bin_change_state" #18 0x00007f21404fa6e1 in gst_element_change_state (element=element@entry=0x7f2118008100 [GstElement|decodebin0], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3093 oclass = 0x7f2118026990 ret = GST_STATE_CHANGE_SUCCESS __func__ = "gst_element_change_state" #19 0x00007f21404fad33 in gst_element_set_state_func (element=0x7f2118008100 [GstElement|decodebin0], state=GST_STATE_READY) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3047 current = GST_STATE_PAUSED next = <optimized out> old_pending = <optimized out> ret = <optimized out> transition = GST_STATE_CHANGE_PAUSED_TO_READY old_ret = <optimized out> __func__ = "gst_element_set_state_func" #20 0x00007f21404d32ec in gst_bin_element_set_state (next=GST_STATE_READY, current=GST_STATE_PAUSED, start_time=0 [0:00:00.000000000], base_time=7635969163921 [2:07:15.969163921], element=0x7f2118008100 [GstElement|decodebin0], bin=0x55def66269b0 [GstBin|uridecodebin0]) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2582 child_current = <optimized out> found = <optimized out> ret = <optimized out> locked = <optimized out> child_pending = <optimized out> child = 0x7f2118008100 [GstElement|decodebin0] bin = 0x55def66269b0 [GstBin|uridecodebin0] ret = <optimized out> current = GST_STATE_PAUSED next = GST_STATE_READY have_async = 0 have_no_preroll = 0 base_time = 7635969163921 [2:07:15.969163921] done = 0 data = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str {g_type = , data = {{v_int = 402686208, v_uint = 402686208, v_long = 139780113334528, v_ulong = 139780113334528, v_int64 = 139780113334528, v_uint64 = 139780113334528, v_float = 1.66087406e-24, v_double = 6.9060551970386214e-310, v_pointer = 0x7f2118008100}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} __func__ = "gst_bin_change_state_func" #21 gst_bin_change_state_func (element=0x55def66269b0 [GstElement|uridecodebin0], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2931 child = 0x7f2118008100 [GstElement|decodebin0] bin = 0x55def66269b0 [GstBin|uridecodebin0] ret = <optimized out> current = GST_STATE_PAUSED next = GST_STATE_READY have_async = 0 have_no_preroll = 0 base_time = 7635969163921 [2:07:15.969163921] done = 0 data = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str {g_type = , data = {{v_int = 402686208, v_uint = 402686208, v_long = 139780113334528, v_ulong = 139780113334528, v_int64 = 139780113334528, v_uint64 = 139780113334528, v_float = 1.66087406e-24, v_double = 6.9060551970386214e-310, v_pointer = 0x7f2118008100}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} __func__ = "gst_bin_change_state_func" #22 0x00007f2133e63cad in gst_uri_decode_bin_change_state (element=0x55def66269b0 [GstElement|uridecodebin0], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gst-plugins-base/gst/playback/gsturidecodebin.c:2913 ret = <optimized out> decoder = 0x55def66269b0 [GstURIDecodeBin|uridecodebin0] __func__ = "gst_uri_decode_bin_change_state" #23 0x00007f21404fa6e1 in gst_element_change_state (element=element@entry=0x55def66269b0 [GstElement|uridecodebin0], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3093 oclass = 0x55def6624160 ret = GST_STATE_CHANGE_SUCCESS __func__ = "gst_element_change_state" #24 0x00007f21404fad33 in gst_element_set_state_func (element=0x55def66269b0 [GstElement|uridecodebin0], state=GST_STATE_READY) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3047 current = GST_STATE_PAUSED next = <optimized out> old_pending = <optimized out> ret = <optimized out> transition = GST_STATE_CHANGE_PAUSED_TO_READY old_ret = <optimized out> __func__ = "gst_element_set_state_func" #25 0x00007f21404d32ec in gst_bin_element_set_state (next=GST_STATE_READY, current=GST_STATE_PAUSED, start_time=0 [0:00:00.000000000], base_time=7635969163921 [2:07:15.969163921], element=0x55def66269b0 [GstElement|uridecodebin0], bin=0x55def65f0640 [GstBin|playbin0]) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2582 child_current = <optimized out> found = <optimized out> ret = <optimized out> locked = <optimized out> child_pending = <optimized out> child = 0x55def66269b0 [GstElement|uridecodebin0] bin = 0x55def65f0640 [GstBin|playbin0] ret = <optimized out> current = GST_STATE_PAUSED next = GST_STATE_READY have_async = 0 have_no_preroll = 0 base_time = 7635969163921 [2:07:15.969163921] done = 0 data = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str {g_type = , data = {{v_int = -161322576, v_uint = 4133644720, v_long = 94416104745392, v_ulong = 94416104745392, v_int64 = 94416104745392, v_uint64 = 94416104745392, v_float = -1.1480495e+33, v_double = 4.6647753768846881e-310, v_pointer = 0x55def66269b0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} __func__ = "gst_bin_change_state_func" #26 gst_bin_change_state_func (element=0x55def65f0640 [GstElement|playbin0], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gstreamer/gst/gstbin.c:2931 child = 0x55def66269b0 [GstElement|uridecodebin0] bin = 0x55def65f0640 [GstBin|playbin0] ret = <optimized out> current = GST_STATE_PAUSED next = GST_STATE_READY have_async = 0 have_no_preroll = 0 base_time = 7635969163921 [2:07:15.969163921] done = 0 data = Python Exception <class 'TypeError'>: can only concatenate str (not "NoneType") to str {g_type = , data = {{v_int = -161322576, v_uint = 4133644720, v_long = 94416104745392, v_ulong = 94416104745392, v_int64 = 94416104745392, v_uint64 = 94416104745392, v_float = -1.1480495e+33, v_double = 4.6647753768846881e-310, v_pointer = 0x55def66269b0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} __func__ = "gst_bin_change_state_func" #27 0x00007f2140527b5c in gst_pipeline_change_state (element=0x55def65f0640 [GstElement|playbin0], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gstreamer/gst/gstpipeline.c:529 result = GST_STATE_CHANGE_SUCCESS pipeline = 0x55def65f0640 [GstPipeline|playbin0] clock = <optimized out> __func__ = "gst_pipeline_change_state" #28 0x00007f2133e7db32 in gst_play_bin_change_state (element=0x55def65f0640 [GstElement|playbin0], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin2.c:5838 ret = <optimized out> playbin = 0x55def65f0640 [GstPlayBin|playbin0] do_save = 0 __func__ = "gst_play_bin_change_state" #29 0x00007f21404fa6e1 in gst_element_change_state (element=element@entry=0x55def65f0640 [GstElement|playbin0], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3093 oclass = 0x55def65ed140 ret = GST_STATE_CHANGE_SUCCESS __func__ = "gst_element_change_state" #30 0x00007f21404fad33 in gst_element_set_state_func (element=0x55def65f0640 [GstElement|playbin0], state=GST_STATE_NULL) at ../gstreamer/subprojects/gstreamer/gst/gstelement.c:3047 current = GST_STATE_PAUSED next = <optimized out> old_pending = <optimized out> ret = <optimized out> transition = GST_STATE_CHANGE_PAUSED_TO_READY old_ret = <optimized out> __func__ = "gst_element_set_state_func" #31 0x00007f214060f6a5 in QGstreamerPlayerSession::stop() (this=0x55def62ed700) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/gsttools/qgstreamerplayersession.cpp:1068 oldState = <optimized out> #32 0x00007f2140612a60 in QGstreamerPlayerSession::~QGstreamerPlayerSession() (this=0x55def62ed700, this=<optimized out>) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/gsttools/qgstreamerplayersession.cpp:245 #33 0x00007f2140612c0e in QGstreamerPlayerSession::~QGstreamerPlayerSession() (this=0x55def62ed700, this=<optimized out>) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/gsttools/qgstreamerplayersession.cpp:254 #34 0x00007f21882b4ba5 in QObjectPrivate::deleteChildren() (this=this@entry=0x55def5d42070) at kernel/qobject.cpp:2137 i = <optimized out> #35 0x00007f21882b5369 in QObject::~QObject() (this=this@entry=0x55def5df89c0, this=<optimized out>) at kernel/qobject.cpp:1115 d = <optimized out> sharedRefcount = <optimized out> cd = 0x0 #36 0x00007f217926a848 in QMediaService::~QMediaService() (this=this@entry=0x55def5df89c0, this=<optimized out>) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/multimedia/qmediaservice.cpp:109 #37 0x00007f2142ff4263 in QGstreamerPlayerService::~QGstreamerPlayerService() (this=0x55def5df89c0, this=<optimized out>) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp:102 #38 QGstreamerPlayerService::~QGstreamerPlayerService() (this=0x55def5df89c0, this=<optimized out>) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp:102 #39 QGstreamerPlayerServicePlugin::release(QMediaService*) (this=<optimized out>, service=0x55def5df89c0) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/plugins/gstreamer/mediaplayer/qgstreamerplayerserviceplugin.cpp:66 #40 0x00007f21792aac0b in QPluginServiceProvider::releaseService(QMediaService*) (service=<optimized out>, this=<optimized out>) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/multimedia/qmediaserviceprovider.cpp:450 d = {type = {d = 0x55def5d633f0}, plugin = 0x55def5e7fdf0} d = <optimized out> #41 QMediaPlayer::~QMediaPlayer() (this=0x55def5d63370, this=<optimized out>) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/multimedia/playback/qmediaplayer.cpp:692 d = <optimized out> #42 0x00007f21792aac5e in QMediaPlayer::~QMediaPlayer() (this=0x55def5d63370, this=<optimized out>) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/multimedia/playback/qmediaplayer.cpp:694 #43 0x00007f2179351cd5 in QDeclarativeAudio::~QDeclarativeAudio() (this=this@entry=0x7f21486a91d0, this=<optimized out>) at /usr/src/debug/qt5-multimedia/qtmultimedia/src/imports/multimedia/qdeclarativeaudio.cpp:131 #44 0x00007f2179351eb8 in QQmlPrivate::QQmlElement<QDeclarativeAudio>::~QQmlElement() (this=0x7f21486a91d0, this=<optimized out>) at /usr/include/qt/QtQml/qqmlprivate.h:144 #45 QQmlPrivate::QQmlElement<QDeclarativeAudio>::~QQmlElement() (this=0x7f21486a91d0, this=<optimized out>) at /usr/include/qt/QtQml/qqmlprivate.h:144 #46 0x00007f21882b4ba5 in QObjectPrivate::deleteChildren() (this=this@entry=0x55def5ea7df0) at kernel/qobject.cpp:2137 i = <optimized out> #47 0x00007f21882b5369 in QObject::~QObject() (this=this@entry=0x55def5d76d70, this=<optimized out>) at kernel/qobject.cpp:1115 d = <optimized out> sharedRefcount = <optimized out> cd = 0x55def5de23d0 #48 0x00007f218a0299c7 in QQuickItem::~QQuickItem() (this=this@entry=0x55def5d76d70, this=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:2389 #49 0x00007f2187f0b28b in QQuickControl::~QQuickControl() (this=this@entry=0x55def5d76d70, this=<optimized out>) at /usr/src/debug/qt5-quickcontrols2/qtquickcontrols2/src/quicktemplates2/qquickcontrol.cpp:1001 #50 0x00007f217bfba00b in QQmlPrivate::QQmlElement<QQuickControl>::~QQmlElement() (this=0x55def5d76d70, this=<optimized out>) at /usr/include/qt/QtQml/qqmlprivate.h:144 #51 QQmlPrivate::QQmlElement<QQuickControl>::~QQmlElement() (this=0x55def5d76d70, this=<optimized out>) at /usr/include/qt/QtQml/qqmlprivate.h:144 #52 0x00007f21882b19da in QObject::event(QEvent*) (this=0x55def5d76d70, e=0x55def669cbe0) at kernel/qobject.cpp:1334 #53 0x00007f2188f78b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55def5d76d70, e=0x55def669cbe0) at kernel/qapplication.cpp:3640 consumed = false filtered = false #54 0x00007f218828df48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55def5d76d70, event=0x55def669cbe0) at kernel/qcoreapplication.cpp:1064 selfRequired = true result = false cbdata = {0x55def5d76d70, 0x55def669cbe0, 0x7ffe452f4b5f} d = <optimized out> threadData = 0x55def4b52ec0 scopeLevelCounter = {threadData = 0x55def4b52ec0} #55 0x00007f218828dfb3 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462 #56 0x00007f218828ea53 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55def4b52ec0) at kernel/qcoreapplication.cpp:1821 e = 0x55def669cbe0 pe = <optimized out> r = <optimized out> event_deleter = {d = 0x55def669cbe0} locker = {_M_device = 0x55def4b52ef0, _M_owns = false} startOffset = 0 i = @0x55def4b52ee4: 399 cleanup = {receiver = 0x0, event_type = 0, data = 0x55def4b52ec0, exceptionCaught = true} #57 0x00007f21882d4e88 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55def4b96f50) at kernel/qeventdispatcher_glib.cpp:277 source = 0x55def4b96f50 #58 0x00007f218650fafb in g_main_dispatch (context=0x7f217c000ee0) at ../glib/glib/gmain.c:3460 dispatch = 0x7f21882d4e70 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)> prev_source = 0x0 begin_time_nsec = 7651437630181 was_in_call = 0 user_data = 0x0 callback = 0x0 cb_funcs = 0x0 cb_data = 0x0 need_destroy = <optimized out> source = 0x55def4b96f50 current = 0x55def563a330 i = 0 #59 g_main_context_dispatch (context=0x7f217c000ee0) at ../glib/glib/gmain.c:4200 #60 0x00007f218656c5d9 in g_main_context_iterate.constprop.0 (context=0x7f217c000ee0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4276 max_priority = 0 timeout = 0 some_ready = 1 nfds = 2 allocated_nfds = <optimized out> fds = <optimized out> begin_time_nsec = 7651437614118 #61 0x00007f218650d382 in g_main_context_iteration (context=0x7f217c000ee0, may_block=1) at ../glib/glib/gmain.c:4343 retval = <optimized out> #62 0x00007f21882d8c6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55def4b78240, flags=...) at kernel/qeventdispatcher_glib.cpp:423 d = 0x55def4b9b8e0 canWait = true savedFlags = {i = 0} result = <optimized out> #63 0x00007f21882866ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffe452f4eb0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 d = 0x55def55d3dc0 threadData = <optimized out> locker = {val = 94416076615608} app = <optimized out> #64 0x00007f2188291219 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 threadData = 0x55def4b52ec0 eventLoop = {<QObject> = {_vptr.QObject = 0x7f2188512730 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f2188375920 <_ZL26qt_meta_stringdata_QObject.lto_priv.0>, data = 0x7f2188375800 <_ZL20qt_meta_data_QObject.lto_priv.0>, static_metacall = 0x7f21882beea0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55def55d3dc0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f218839c500 <_ZL21qt_meta_stringdata_Qt.lto_priv.0>, data = 0x7f2188399680 <_ZL15qt_meta_data_Qt.lto_priv.0>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f218850b560 <QObject::staticMetaObject>}, stringdata = 0x7f21883712e0 <_ZL29qt_meta_stringdata_QEventLoop.lto_priv.0>, data = 0x7f2188371280 <_ZL23qt_meta_data_QEventLoop.lto_priv.0>, static_metacall = 0x7f2188284f30 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} returnCode = <optimized out> #65 0x000055def312af7d in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/tokodon/tokodon-23.02.0/src/main.cpp:209 app = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x7f2189483660 <vtable for QApplication+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f2188375920 <_ZL26qt_meta_stringdata_QObject.lto_priv.0>, data = 0x7f2188375800 <_ZL20qt_meta_data_QObject.lto_priv.0>, static_metacall = 0x7f21882beea0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55def4b52d50}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f218839c500 <_ZL21qt_meta_stringdata_Qt.lto_priv.0>, data = 0x7f2188399680 <_ZL15qt_meta_data_Qt.lto_priv.0>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f218850b560 <QObject::staticMetaObject>}, stringdata = 0x7f2188371060 <_ZL35qt_meta_stringdata_QCoreApplication.lto_priv.0>, data = 0x7f2188370f40 <_ZL29qt_meta_data_QCoreApplication.lto_priv.0>, static_metacall = 0x7f2188290820 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0x7ffe452f4ff0}, static staticMetaObject = {d = {superdata = {direct = 0x7f2188510380 <QCoreApplication::staticMetaObject>}, stringdata = 0x7f2188b5b720 <_ZL34qt_meta_stringdata_QGuiApplication.lto_priv.0>, data = 0x7f2188b5b4a0 <_ZL28qt_meta_data_QGuiApplication.lto_priv.0>, static_metacall = 0x7f218874b5f0 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f2188c48e80 <QGuiApplication::staticMetaObject>}, stringdata = 0x7f21893468e0 <_ZL31qt_meta_stringdata_QApplication.lto_priv.0>, data = 0x7f2189346760 <_ZL25qt_meta_data_QApplication.lto_priv.0>, static_metacall = 0x7f2188f7a430 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}} about = {static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f21895742c0 <qt_meta_stringdata_KAboutData>, data = 0x7f21895741c0 <qt_meta_data_KAboutData>, static_metacall = 0x7f218951c860 <KAboutData::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d = std::unique_ptr<class KAboutDataPrivate> = {get() = 0x55def4c96fb0}} service = {<QObject> = {_vptr.QObject = 0x7f2189c88290 <vtable for KDBusService+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f2188375920 <_ZL26qt_meta_stringdata_QObject.lto_priv.0>, data = 0x7f2188375800 <_ZL20qt_meta_data_QObject.lto_priv.0>, static_metacall = 0x7f21882beea0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55def4cd1880}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f218839c500 <_ZL21qt_meta_stringdata_Qt.lto_priv.0>, data = 0x7f2188399680 <_ZL15qt_meta_data_Qt.lto_priv.0>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f218850b560 <QObject::staticMetaObject>}, stringdata = 0x7f2189c836c0 <qt_meta_stringdata_KDBusService>, data = 0x7f2189c82700 <qt_meta_data_KDBusService>, static_metacall = 0x7f2189c783d0 <KDBusService::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d = std::unique_ptr<class KDBusServicePrivate> = {get() = 0x55def4cfce90}} config = <optimized out> colorScheme = {<QObject> = {_vptr.QObject = 0x55def3194c28 <vtable for ColorSchemer+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f2188375920 <_ZL26qt_meta_stringdata_QObject.lto_priv.0>, data = 0x7f2188375800 <_ZL20qt_meta_data_QObject.lto_priv.0>, static_metacall = 0x7f21882beea0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55def4ce6f00}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f218839c500 <_ZL21qt_meta_stringdata_Qt.lto_priv.0>, data = 0x7f2188399680 <_ZL15qt_meta_data_Qt.lto_priv.0>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f218850b560 <QObject::staticMetaObject>}, stringdata = 0x55def316d3a0 <qt_meta_stringdata_ColorSchemer>, data = 0x55def3169780 <qt_meta_data_ColorSchemer>, static_metacall = 0x55def312f8b0 <ColorSchemer::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, c = 0x55def4cd5340} [Inferior 1 (process 11463) detached] Exception ignored in: <gdb._GdbFile object at 0x7f637c19d090> Traceback (most recent call last): File "/usr/share/gdb/python/gdb/__init__.py", line 56, in flush def flush(self): KeyboardInterrupt: SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.27.3 KDE Frameworks Version: 5.104.0 Qt Version: 5.15.8 Kernel Version: 6.2.7-arch1-1 (64-bit) Graphics Platform: Wayland Graphics Processor: Mesa Intel® HD Graphics 3000
Yes, more Qt multimedia "fun" :-) I have encountered this same sort of bug, although I'm not sure its the same one. Can you take a look at https://wiki.archlinux.org/title/GStreamer#Hardware_video_acceleration and **disable** hardware acceleration for Gstreamer by uninstalling those packages? That ended up being the cause of the issues for me, as something about Gstreamer's VA-API pipeline that Qt doesn't like.
Sorry, I'm not like the average arch expert :) It turns out i didn't even have either gstreamer-vaapi or libva-intel-driver installed. Just to make sure, i installed them both and retested: gif media playback worked better but as soon as i scrolled past it in the timeline the same freeze happened.
> Sorry, I'm not like the average arch expert :) It turns out i didn't even > have either gstreamer-vaapi or libva-intel-driver installed. > > Just to make sure, i installed them both and retested: gif media playback > worked better but as soon as i scrolled past it in the timeline the same > freeze happened. Ah I should've been clearer, my problem was from those packages. It's clear now that your issue doesn't stem from those unfortunately. However, I happen have a similar enough system, where I can hopefully reproduce within the next few days. And just to be sure, this is the latest Tokodon from the Archlinux repositories?
Yes, this is the latest Tokodon from Arch's repository.
I finally set up an Arch VM today, and I can't reproduce. I have only installed `gstreamer`, `gst-libav` (needed for h264 playback) and `gst-plugins-good`. Now I'm not sure what's failing... could you dump your installed packages to a file (https://wiki.archlinux.org/title/Pacman/Tips_and_tricks#With_version) and add it as an attachment to this bug report? Don't try to paste it into the comment box, it will be too long :)
Created attachment 157530 [details] installed pkg list I've dumped my entire pkg list, hope it's ok. Let me know if there's anything else.
Created attachment 157531 [details] recording I've also made a small recording I can reproduce it if i go to this page: https://mastodon.social/@gamingonlinux/ and then scroll, whilst still on it's feed, to this post: https://mastodon.social/@gamingonlinux/110072292787924891 It plays the video a few times but should then stop and if i scroll a bit past it the client freezes, as in the video.
Also, please ignore me using ffmpeg-git. I don't know if the libs would depend on ffmpeg in this case but the problem was still present when i was with the standard ffmpeg from the arch repos.
Hi! I am experiencing the same issue on Arch as well with both the extra/tokodon and tokodon-git from the aur. Attaching my package list as well.
Created attachment 158509 [details] package list with versions
I'm reproducing under Arch on real hardware now (as it's now one of my daily driving distributions) and I'm still a little stumped as to what the issue is. I'm still fine on Gentoo (the videos don't play correctly there but at least it doesnt crash)
(In reply to Joshua Goins from comment #11) > I'm reproducing under Arch on real hardware now (as it's now one of my daily > driving distributions) and I'm still a little stumped as to what the issue > is. I'm still fine on Gentoo (the videos don't play correctly there but at > least it doesnt crash) Sorry about the late response. I've tried to make the bug happen again to no avail. I've updated my system in the meantime. I used diff to see what packages I've changed and nothing seems relevant apart from imagemagick and my kernel...
I take it back. Still crashes.
I've been working on replacing the buggy QtMultimedia we use to something that actually functions, but no idea when it will show up in a release yet. This bug will be updated once it gets merged, and you'll at least be able to use tokodon-git to work around this issue: https://aur.archlinux.org/packages/tokodon-git
I have experienced this crash with gst-plugins-good installed. This is required for other apps such as audiotube. Without it I this error and gifs and videos don't work. At least it doesn't crash after a while. Warning: "No decoder available for type 'video/quicktime, variant=(string)iso'." Error: "Your GStreamer installation is missing a plug-in."
This will be fixed in 23.08 as we move from GStreamer to MPV :-)