After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 743386 - gst_omx_audio_dec_flush() causes a hang issue
gst_omx_audio_dec_flush() causes a hang issue
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-omx
1.2.0
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-01-23 00:40 UTC by Jun Ji
Modified: 2018-11-03 13:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
aacdec hang issue (209.64 KB, application/zip)
2015-01-27 01:27 UTC, Jun Ji
Details
only_gst_omx_logs.txt (641.73 KB, application/x-compressed-tar)
2017-05-21 10:52 UTC, Julien Isorce
Details
deadlock.txt (10.49 KB, text/plain)
2017-05-21 10:53 UTC, Julien Isorce
Details

Description Jun Ji 2015-01-23 00:40:05 UTC
Simply I found that the newly added 'gst_pad_stop_task()' in gst_omx_audio_dec_flush() causes a hang issue when the this function is called seamlessly 10~20 times.

Once I remove the 'gst_pad_stop_task()', the hang issue isn't produced even with 100 consecutive flush().

Is it ok that I use this flush() function removed 'gst_pad_stop_task()' while I don't edit any other code in the latest gstreamer package?
Comment 1 Sebastian Dröge (slomo) 2015-01-26 12:50:31 UTC
Can you provide a backtrace of all threads when this hang happens? And also a GStreamer debug log with GST_DEBUG=omx*:6?
Comment 2 Jun Ji 2015-01-27 01:27:55 UTC
Created attachment 295496 [details]
aacdec hang issue
Comment 3 Jun Ji 2015-01-27 01:29:07 UTC
Hi slomo, I attached a log file. It contains several successful seeking finishing with the hang issue.
Comment 4 Jun Ji 2015-01-27 01:30:41 UTC
Since this gstreamer doesn't run alone, I need to find a way to debug it running inside of other process. If you need the backtrace, please let me know.
Comment 5 Julien Isorce 2017-05-20 17:18:39 UTC
Should the new call to stop_task in _flush being called only if it is a hard flush ? (https://cgit.freedesktop.org/gstreamer/gst-omx/commit/?id=19d77004d2f5bd2ef76a7262c7a26cdaacc5c018)
Comment 6 Julien Isorce 2017-05-21 10:52:12 UTC
Created attachment 352264 [details]
only_gst_omx_logs.txt

Can reproduce the hang with Bellagio's mp3 software decoder.
Comment 7 Julien Isorce 2017-05-21 10:53:19 UTC
Created attachment 352265 [details]
deadlock.txt

backtrace for the hang.
Comment 8 Julien Isorce 2017-05-21 10:57:07 UTC
To reproduce the hang, just run: GST_OMX_CONFIG_DIR=$HOME/gst/master/gst-omx/config/bellagio/ gst-launch-1.0 filesrc location=mpthreetest.mp3 ! id3demux ! mpegaudioparse ! omxmp3dec ! audioconvert ! goom ! navseek seek-offset=1 ! ximagesink and keep pressing hard the left or right arrow.

No hang if revert https://cgit.freedesktop.org/gstreamer/gst-omx/commit/?id=19d77004d2f5bd2ef76a7262c7a26cdaacc5c018 .

It hangs on the (last) gst_omx_component_get_state that this commit above added. (also note that hack "drain-may-not-return" does not help)
Comment 9 Guillaume Desmottes 2017-07-18 11:35:26 UTC
Could it be related to bug #784972 ?
Comment 10 Guillaume Desmottes 2017-07-18 11:40:12 UTC
(In reply to Guillaume Desmottes from comment #9)
> Could it be related to bug #784972 ?

It's not. This lock is in decoders while bug #784972 is encoders.
Comment 12 Guillaume Desmottes 2018-06-08 07:50:53 UTC
Could be the same problem as the one I fixed in the video decoder, see #796207
Comment 13 GStreamer system administrator 2018-11-03 13:00:30 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-omx/issues/6.