Bug 176804 - [GStreamer] Many media source tests crashing with GStreamer-CRITICAL **: _gst_util_uint64_scale: assertion 'denom != 0' failed in gst_qtdemux_configure_stream()
Summary: [GStreamer] Many media source tests crashing with GStreamer-CRITICAL **: _gst...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: Other
Hardware: PC Linux
: P2 Normal
Assignee: Nael Ouedraogo
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-09-12 13:27 PDT by Michael Catanzaro
Modified: 2017-10-17 06:36 PDT (History)
8 users (show)

See Also:


Attachments
Patch (9.52 KB, patch)
2017-09-22 10:40 PDT, Nael Ouedraogo
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews124 for ios-simulator-wk2 (18.94 MB, application/zip)
2017-09-22 13:11 PDT, Build Bot
no flags Details
Patch (9.66 KB, patch)
2017-10-11 06:52 PDT, Nael Ouedraogo
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Catanzaro 2017-09-12 13:27:37 PDT
Since enabling fatal criticals for layout tests, many media source tests are now crashing with the following error in gst_qtdemux_configure_stream():

GStreamer-CRITICAL **: _gst_util_uint64_scale: assertion 'denom != 0' failed

I'm adding crash expectations for the following tests:

imported/w3c/web-platform-tests/media-source/mediasource-append-buffer.html
imported/w3c/web-platform-tests/media-source/mediasource-appendwindow.html
imported/w3c/web-platform-tests/media-source/mediasource-detach.html
imported/w3c/web-platform-tests/media-source/mediasource-duration.html
imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html
imported/w3c/web-platform-tests/media-source/mediasource-play-then-seek-back.html
imported/w3c/web-platform-tests/media-source/mediasource-play.html
imported/w3c/web-platform-tests/media-source/mediasource-redundant-seek.html
imported/w3c/web-platform-tests/media-source/mediasource-remove.html
imported/w3c/web-platform-tests/media-source/mediasource-seek-beyond-duration.html
imported/w3c/web-platform-tests/media-source/mediasource-seek-during-pending-seek.html
imported/w3c/web-platform-tests/media-source/mediasource-sourcebuffer-mode.html

Sample backtrace:

Thread 1 (Thread 0x7fd8fbfff700 (LWP 10626)):
#0  _g_log_abort () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.52.1/glib/gmessages.c:549
#1  0x00007fda1fc1a1b5 in g_logv () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.52.1/glib/gmessages.c:1357
#2  0x00007fda1fc1a302 in g_log () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.52.1/glib/gmessages.c:1398
#3  0x00007fda20c994c0 in _gst_util_uint64_scale () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.10.5/gst/gstutils.c:479
#4  0x00007fd9b969e452 in gst_qtdemux_configure_stream () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/gst-plugins-good-1.10.5/gst/isomp4/qtdemux.c:7747
#5  0x00007fd9b96b9e8b in gst_qtdemux_process_adapter () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/gst-plugins-good-1.10.5/gst/isomp4/qtdemux.c:6730
#6  0x00007fda20c5d8f7 in gst_pad_chain_data_unchecked () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.10.5/gst/gstpad.c:4202
#7  gst_pad_push_data () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.10.5/gst/gstpad.c:4454
#8  0x00007fda20c658f2 in gst_pad_push () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.10.5/gst/gstpad.c:4573
#9  0x00007fda20d50895 in gst_base_src_loop () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.10.5/libs/gst/base/gstbasesrc.c:2854
#10 0x00007fda20c90981 in gst_task_func () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/gstreamer-1.10.5/gst/gsttask.c:334
#11 0x00007fda1fc3acee in g_thread_pool_thread_proxy () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.52.1/glib/gthreadpool.c:307
#12 0x00007fda1fc3a315 in g_thread_proxy () at /home/slave/webkitgtk/gtk-linux-64-release-tests/build/WebKitBuild/DependenciesGTK/Source/glib-2.52.1/glib/gthread.c:784
#13 0x00007fda1ca52494 in start_thread (arg=0x7fd8fbfff700) at pthread_create.c:333
#14 0x00007fda1b8b793f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Comment 1 Alicia Boya García 2017-09-13 04:44:30 PDT
Has this started appearing on the bots just recently?

The issue has been there for long when I ran the tests in my computer.
Comment 2 Michael Catanzaro 2017-09-13 06:15:13 PDT
No, it's been happening for ages. But I changed criticals to be fatal yesterday to reflect the severity of these bugs, so only now are the tests crashing.
Comment 3 Michael Catanzaro 2017-09-13 06:17:17 PDT
By the way, half these tests were already failing anyway. The test expectations are starting to become a bit messy as I've now filed a second bug report for many multimedia tests that previously had only failure bug reports and now have a second crash bug report as well. That started a couple weeks ago, not just yesterday. Really not pleased about the state of our multimedia tests. :(
Comment 4 Nael Ouedraogo 2017-09-22 10:40:00 PDT
Created attachment 321561 [details]
Patch
Comment 5 Nael Ouedraogo 2017-09-22 10:42:04 PDT
It seems a Gstreamer bug. Uploaded patch should fix the issue. wdyt?
Comment 6 Michael Catanzaro 2017-09-22 11:33:49 PDT
It's fine by me as long as the patch is submitted upstream. Enrique, can you review it please?
Comment 7 Build Bot 2017-09-22 13:11:14 PDT
Comment on attachment 321561 [details]
Patch

Attachment 321561 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/4630156

New failing tests:
fast/canvas/webgl/texImage2D-video-flipY-true.html
Comment 8 Build Bot 2017-09-22 13:11:17 PDT
Created attachment 321586 [details]
Archive of layout-test-results from ews124 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews124  Port: ios-simulator-wk2  Platform: Mac OS X 10.12.6
Comment 9 Enrique Ocaña 2017-09-29 04:08:57 PDT
This is being tracked in GStreamer bugzilla here:

https://bugzilla.gnome.org/show_bug.cgi?id=782217

The patch looks good to me, but could you please submit the original gst-plugins-good patch to the bug above?
Comment 10 Alicia Boya García 2017-10-10 15:24:49 PDT
The patch has been approved upstream.

In the meanwhile until the next stable version is released we should commit the
patch internally for our jhbuild so we stop getting stderr in our test runs.

You may want to consider this upstream commit from Sebastian when doing so:

https://github.com/GStreamer/gst-plugins-good/commit/728a1629cf9fd7f4a728477bda1d13a1ecc219bb
Comment 11 Nael Ouedraogo 2017-10-11 06:52:25 PDT
Created attachment 323414 [details]
Patch
Comment 12 Nael Ouedraogo 2017-10-11 07:23:08 PDT
Thanks for the reviews.
Comment 13 WebKit Commit Bot 2017-10-11 07:51:32 PDT
Comment on attachment 323414 [details]
Patch

Clearing flags on attachment: 323414

Committed r223178: <https://trac.webkit.org/changeset/223178>
Comment 14 WebKit Commit Bot 2017-10-11 07:51:34 PDT
All reviewed patches have been landed.  Closing bug.
Comment 15 Radar WebKit Bug Importer 2017-10-11 07:54:32 PDT
<rdar://problem/34933168>
Comment 16 Carlos Garcia Campos 2017-10-17 05:35:56 PDT
Comment on attachment 323414 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=323414&action=review

> Tools/gstreamer/jhbuild.modules:81
> +      <patch file="gst-plugins-good-0009-qtdemux-fix-assert-when-moof-contains-one-sample.patch" strip="1"/>

Is this patch already upstream? in which version is (or will be) released? Please, when adding patches to jhbuild, add a comment line before the patch replying this question and documenting what the patch does and why it's needed. Otherwise, when bumping the gst version we don't know if we still need this patch or not.
Comment 17 Nael Ouedraogo 2017-10-17 06:36:05 PDT
> Is this patch already upstream? in which version is (or will be) released?
Yes, it is fixed upstream. GStreamer bug report [1] indicates that the target milestone is version 1.13.1. 

> Please, when adding patches to jhbuild, add a comment line before the patch
> replying this question and documenting what the patch does and why it's
> needed. Otherwise, when bumping the gst version we don't know if we still
> need this patch or not.
I will upload a new patch to document why this gstreamer patch is required.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=782217