[Webkit-unassigned] [Bug 190469] New: [MSE][GStreamer] Missing opusparse gstreamer element crashes WebKitWebProcess

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 11 07:47:16 PDT 2018


https://bugs.webkit.org/show_bug.cgi?id=190469

            Bug ID: 190469
           Summary: [MSE][GStreamer] Missing opusparse gstreamer element
                    crashes WebKitWebProcess
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit Gtk
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: leio at gentoo.org
                CC: bugs-noreply at webkitgtk.org

In Gentoo we don't ship opusparse element, because when opusdec/openenc got moved to gst-plugins-base, opusparse was left into gst-plugins-bad and when packaging this change, I was told by GStreamer upstream that nothing probably should need it.
However now with MSE enabling epiphany (due to youtube), this crashes webkit-gtk hard, due to this code in Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:

        GstElement* opusparse = gst_element_factory_make("opusparse", parserName.get());
        RELEASE_ASSERT(opusparse);

with relevant gdb bits as:

(gdb) bt
#0  0x00007f34b6246e2e in WTFCrash () at /usr/src/debug/net-libs/webkit-gtk-2.22.2/webkitgtk-2.22.2/Source/WTF/wtf/Assertions.cpp:267
#1  0x00007f34bbc71f0c in createOptionalParserForFormat () at /usr/src/debug/net-libs/webkit-gtk-2.22.2/webkitgtk-2.22.2/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:882
#2  WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread () at /usr/src/debug/net-libs/webkit-gtk-2.22.2/webkitgtk-2.22.2/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:956
#3  0x00007f34aa8aa0de in ffi_call_unix64 () from /usr/lib64/libffi.so.6
(gdb) frame 1
#1  0x00007f34bbc71f0c in createOptionalParserForFormat () at /usr/src/debug/net-libs/webkit-gtk-2.22.2/webkitgtk-2.22.2/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:882
882             RELEASE_ASSERT(opusparse);


It seems counter-intuitive to release assert SIGSEGV upon no opusparse found when
1) It is an element in gst-plugins-bad
2) There is no documentation in webkit-gtk to tell that this is a hard requirement for runtime MSE or it crashes (and spins 2 minutes in coredumpd service)
3) It crashes in createOptionalParserForFormat method, emphasis on "Optional" - sounds like it isn't optional then, other than if no opus audio MSE sources happen to be encountered..

Additionally it behaves the same without vorbisparse, but that's less likely to be missing, at least.


Are you sure it is really necessary for proper functionality? Either way, could it be made to at least not RELEASE_ASSERT and bring the whole process down?

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20181011/d54fec00/attachment-0001.html>


More information about the webkit-unassigned mailing list