Bug 222792

Summary: [WebRTC][GStreamer] webrtc/multi-video.html crashes
Product: WebKit Reporter: Philippe Normand <pnormand>
Component: PlatformAssignee: Philippe Normand <pnormand>
Status: RESOLVED FIXED    
Severity: Normal CC: calvaris, eric.carlson, ews-watchlist, glenn, hta, jer.noble, philipj, sergio, tommyw, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Philippe Normand 2021-03-05 03:04:59 PST
STDERR: (WebKitWebProcess:9085): GStreamer-CRITICAL **: 02:57:50.238: gst_proxy_pad_get_internal: assertion 'GST_IS_PROXY_PAD (pad)' failed

Thread 1 (Thread 0x7f2e2ad1e9c0 (LWP 9085)):
#0  g_logv (log_domain=0x7f2e2c518240 <g_log_domain_gstreamer> "GStreamer", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>) at ../glib/gmessages.c:1413
#1  0x00007f2e2d26f973 in g_log (log_domain=<optimized out>, log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7f2e2d2c7ad0 "%s: assertion '%s' failed") at ../glib/gmessages.c:1451
#2  0x00007f2e2d27019d in g_return_if_fail_warning (log_domain=<optimized out>, pretty_function=pretty_function@entry=0x7f2e2c525fb0 <__func__.16> "gst_proxy_pad_get_internal", expression=expression@entry=0x7f2e2c5258de "GST_IS_PROXY_PAD (pad)") at ../glib/gmessages.c:2883
#3  0x00007f2e2c49e375 in gst_proxy_pad_get_internal (pad=0x0) at ../gst/gstghostpad.c:220
#4  0x00007f2e3444fc6c in InternalSource::~InternalSource() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#5  0x00007f2e3444da22 in webkitMediaStreamSrcAddTrack () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#6  0x00007f2e3444ded5 in webkitMediaStreamSrcSetStream () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#7  0x00007f2e2d36261e in g_cclosure_marshal_VOID__OBJECTv (closure=closure@entry=0x219b5a0, return_value=return_value@entry=0x0, instance=instance@entry=0x21979b0, args=args@entry=0x7ffc39629650, marshal_data=marshal_data@entry=0x0, n_params=n_params@entry=1, param_types=0x2190130) at ../gobject/gmarshal.c:1910
#8  0x00007f2e2d35f179 in _g_closure_invoke_va (closure=closure@entry=0x219b5a0, return_value=return_value@entry=0x0, instance=instance@entry=0x21979b0, args=args@entry=0x7ffc39629650, n_params=1, param_types=0x2190130) at ../gobject/gclosure.c:873
#9  0x00007f2e2d3787df in g_signal_emit_valist (instance=0x21979b0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffc39629650) at ../gobject/gsignal.c:3406
#10 0x00007f2e2d3789c3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3553
#11 0x00007f2e2d36261e in g_cclosure_marshal_VOID__OBJECTv (closure=closure@entry=0x24e73e0, return_value=return_value@entry=0x0, instance=instance@entry=0x7f2db41b1620, args=args@entry=0x7ffc39629970, marshal_data=marshal_data@entry=0x0, n_params=n_params@entry=1, param_types=0x24e1f90) at ../gobject/gmarshal.c:1910
#12 0x00007f2e2d35f179 in _g_closure_invoke_va (closure=closure@entry=0x24e73e0, return_value=return_value@entry=0x0, instance=instance@entry=0x7f2db41b1620, args=args@entry=0x7ffc39629970, n_params=1, param_types=0x24e1f90) at ../gobject/gclosure.c:873
#13 0x00007f2e2d3787df in g_signal_emit_valist (instance=0x7f2db41b1620, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffc39629970) at ../gobject/gsignal.c:3406
#14 0x00007f2e2d3789c3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3553
#15 0x00007f2e2d36261e in g_cclosure_marshal_VOID__OBJECTv (closure=closure@entry=0x24e54d0, return_value=return_value@entry=0x0, instance=instance@entry=0x7f2db41b1ae0, args=args@entry=0x7ffc39629c90, marshal_data=marshal_data@entry=0x0, n_params=n_params@entry=1, param_types=0x24e5180) at ../gobject/gmarshal.c:1910
#16 0x00007f2e2d35f179 in _g_closure_invoke_va (closure=closure@entry=0x24e54d0, return_value=return_value@entry=0x0, instance=instance@entry=0x7f2db41b1ae0, args=args@entry=0x7ffc39629c90, n_params=1, param_types=0x24e5180) at ../gobject/gclosure.c:873
#17 0x00007f2e2d3787df in g_signal_emit_valist (instance=0x7f2db41b1ae0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffc39629c90) at ../gobject/gsignal.c:3406
#18 0x00007f2e2d3789c3 in g_signal_emit (instance=instance@entry=0x7f2db41b1ae0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3553
#19 0x00007f2ddb3986dc in setup_source (urisrc=<optimized out>) at ../gst/playback/gsturisourcebin.c:2144
#20 gst_uri_source_bin_change_state (element=0x7f2db41b1ae0 [GstURISourceBin], transition=GST_STATE_CHANGE_READY_TO_PAUSED) at ../gst/playback/gsturisourcebin.c:2812
#21 0x00007f2e2c496aa2 in gst_element_change_state (element=element@entry=0x7f2db41b1ae0 [GstURISourceBin], transition=GST_STATE_CHANGE_READY_TO_PAUSED) at ../gst/gstelement.c:3046
#22 0x00007f2e2c497532 in gst_element_continue_state (element=element@entry=0x7f2db41b1ae0 [GstURISourceBin], ret=ret@entry=GST_STATE_CHANGE_SUCCESS) at ../gst/gstelement.c:2754
#23 0x00007f2e2c496aeb in gst_element_change_state (element=element@entry=0x7f2db41b1ae0 [GstURISourceBin], transition=transition@entry=GST_STATE_CHANGE_NULL_TO_READY) at ../gst/gstelement.c:3085
#24 0x00007f2e2c4971ed in gst_element_set_state_func (element=0x7f2db41b1ae0 [GstURISourceBin], state=GST_STATE_PAUSED) at ../gst/gstelement.c:3000
#25 0x00007f2e2c47337c in gst_bin_element_set_state (next=GST_STATE_PAUSED, current=GST_STATE_READY, start_time=0 [0:00:00.000000000], base_time=0 [0:00:00.000000000], element=0x7f2db41b1ae0 [GstURISourceBin], bin=0x7f2db41b1620 [GstURIDecodeBin3]) at ../gst/gstbin.c:2630
#26 gst_bin_change_state_func (element=0x7f2db41b1620 [GstURIDecodeBin3], transition=GST_STATE_CHANGE_READY_TO_PAUSED) at ../gst/gstbin.c:2972
#27 0x00007f2ddb393112 in gst_uri_decode_bin3_change_state (element=0x7f2db41b1620 [GstURIDecodeBin3], transition=<optimized out>) at ../gst/playback/gsturidecodebin3.c:1111
#28 0x00007f2e2c496aa2 in gst_element_change_state (element=element@entry=0x7f2db41b1620 [GstURIDecodeBin3], transition=GST_STATE_CHANGE_READY_TO_PAUSED) at ../gst/gstelement.c:3046
#29 0x00007f2e2c497532 in gst_element_continue_state (element=element@entry=0x7f2db41b1620 [GstURIDecodeBin3], ret=ret@entry=GST_STATE_CHANGE_SUCCESS) at ../gst/gstelement.c:2754
#30 0x00007f2e2c496aeb in gst_element_change_state (element=element@entry=0x7f2db41b1620 [GstURIDecodeBin3], transition=transition@entry=GST_STATE_CHANGE_NULL_TO_READY) at ../gst/gstelement.c:3085
#31 0x00007f2e2c4971ed in gst_element_set_state_func (element=0x7f2db41b1620 [GstURIDecodeBin3], state=GST_STATE_PAUSED) at ../gst/gstelement.c:3000
#32 0x00007f2ddb3b614d in activate_group (group=0x2197c20, playbin=0x21979b0 [GstPlayBin3]) at ../gst/playback/gstplaybin3.c:4549
#33 setup_next_source (playbin=playbin@entry=0x21979b0 [GstPlayBin3]) at ../gst/playback/gstplaybin3.c:4740
#34 0x00007f2ddb3b7618 in gst_play_bin3_change_state (element=0x21979b0 [GstPlayBin3], transition=GST_STATE_CHANGE_READY_TO_PAUSED) at ../gst/playback/gstplaybin3.c:4965
#35 0x00007f2e2c496aa2 in gst_element_change_state (element=element@entry=0x21979b0 [GstPlayBin3], transition=GST_STATE_CHANGE_READY_TO_PAUSED) at ../gst/gstelement.c:3046
#36 0x00007f2e2c497532 in gst_element_continue_state (element=element@entry=0x21979b0 [GstPlayBin3], ret=ret@entry=GST_STATE_CHANGE_SUCCESS) at ../gst/gstelement.c:2754
#37 0x00007f2e2c496aeb in gst_element_change_state (element=element@entry=0x21979b0 [GstPlayBin3], transition=transition@entry=GST_STATE_CHANGE_NULL_TO_READY) at ../gst/gstelement.c:3085
#38 0x00007f2e2c4971ed in gst_element_set_state_func (element=0x21979b0 [GstPlayBin3], state=GST_STATE_PAUSED) at ../gst/gstelement.c:3000
#39 0x00007f2e35e6b631 in WebCore::MediaPlayerPrivateGStreamer::changePipelineState(GstState) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#40 0x00007f2e35e670ea in WebCore::MediaPlayerPrivateGStreamer::loadFull(WTF::String const&, WTF::String const&) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#41 0x00007f2e35e683cc in WebCore::MediaPlayerPrivateGStreamer::load(WebCore::MediaStreamPrivate&) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#42 0x00007f2e35772fbe in WebCore::MediaPlayer::loadWithNextMediaEngine(WebCore::MediaPlayerFactory const*) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#43 0x00007f2e35773262 in WebCore::MediaPlayer::load(WebCore::MediaStreamPrivate&) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#44 0x00007f2e3521dcf0 in WebCore::HTMLMediaElement::loadResource(WTF::URL const&, WebCore::ContentType&, WTF::String const&) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#45 0x00007f2e35239349 in WTF::Detail::CallableWrapper<WebCore::HTMLMediaElement::selectMediaResource()::$_0, void>::call() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#46 0x00007f2e356a1da7 in WebCore::TaskDispatcher<WebCore::Timer>::sharedTimerFired() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#47 0x00007f2e356ccff6 in WebCore::ThreadTimers::sharedTimerFiredInternal() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#48 0x00007f2e30b709ac in WTF::RunLoop::TimerBase::TimerBase(WTF::RunLoop&)::$_3::__invoke(void*) () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#49 0x00007f2e30b6fe0a in WTF::RunLoop::$_0::__invoke(_GSource*, int (*)(void*), void*) () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#50 0x00007f2e2d267dbf in g_main_dispatch (context=0x1ce9150) at ../glib/gmain.c:3337
#51 g_main_context_dispatch (context=0x1ce9150) at ../glib/gmain.c:4055
#52 0x00007f2e2d268168 in g_main_context_iterate (context=0x1ce9150, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131
#53 0x00007f2e2d268483 in g_main_loop_run (loop=0x1d20920) at ../glib/gmain.c:4329
#54 0x00007f2e30b703ab in WTF::RunLoop::run() () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#55 0x00007f2e342d67ab in WebKit::WebProcessMain(int, char**) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#56 0x00007f2e2cc0a062 in __libc_start_main (main=0x400830 <main>, argc=4, argv=0x7ffc3962a9a8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc3962a998) at ../csu/libc-start.c:308
#57 0x000000000040076e in _start () at ../sysdeps/x86_64/start.S:120
Comment 1 Philippe Normand 2021-03-05 03:42:52 PST
Created attachment 422359 [details]
Patch
Comment 2 EWS 2021-03-09 08:55:40 PST
Committed r274150: <https://commits.webkit.org/r274150>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422359 [details].
Comment 3 Radar WebKit Bug Importer 2021-03-09 08:56:18 PST
<rdar://problem/75219425>