WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
219437
[Debug][GStreamer] Crash in fast/mediastream/change-tracks-media-stream-being-played.html
https://bugs.webkit.org/show_bug.cgi?id=219437
Summary
[Debug][GStreamer] Crash in fast/mediastream/change-tracks-media-stream-being...
Alicia Boya García
Reported
2020-12-02 09:46:03 PST
At the moment this crash is reproduced very easily (so far I've got it every time) in buildbox2 when using run-webkit-tests --gtk --debug I looked at this one in particular because I made a patch for the black bars/resize at the end bug that prevents the tracks from being deleted on EOS and reuses the webkit track classes by changing the pad pointer. That is the only test where I see changes: It crashes both before and after, and in the same functions (videoSampleAvailable or audioSampleAvailable), but with my patch it's a virtual pure function being called and without it's a plain SIGSEGV. Previous reports also mention a g_type_check_instance_cast segfault inside WebCore::WebKitMediaStreamTrackObserver::audioSamplesAvailable
https://bugs.webkit.org/show_bug.cgi?id=209130
Having a cleaner base with no crash would be nice. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f36a3bf2efb in WebCore::RealtimeMediaSource::videoSampleAvailable (this=0x7f36875e4700, mediaSample=...) at ../../Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:208 208 observer->videoSampleAvailable(mediaSample); [Current thread is 1 (Thread 0x7f3687e479c0 (LWP 126))] Thread 1 (Thread 0x7f3687e479c0 (LWP 126)): #0 0x00007f36a3bf2efb in WebCore::RealtimeMediaSource::videoSampleAvailable(WebCore::MediaSample&) (this=0x7f36875e4700, mediaSample=...) at ../../Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:208 #1 0x00007f36a3c1ecac in WebCore::RealtimeVideoSource::videoSampleAvailable(WebCore::MediaSample&) (this=0x7f36875e4700, sample=...) at ../../Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp:189 #2 0x00007f36a3bf2f14 in WebCore::RealtimeMediaSource::videoSampleAvailable(WebCore::MediaSample&) (this=0x7f3687553000, mediaSample=...) at ../../Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:208 #3 0x00007f36a3c1d901 in WebCore::RealtimeVideoCaptureSource::dispatchMediaSampleToObservers(WebCore::MediaSample&) (this=0x7f3687553000, sample=...) at ../../Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:399 #4 0x00007f36a4830192 in WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer() (this=0x7f3687553000) at ../../Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:70 #5 0x00007f36a3c4d217 in WebCore::MockRealtimeVideoSource::generateFrame() (this=0x7f3687553000) at ../../Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp:449 #6 0x00007f36a3c5f051 in std::__invoke_impl<void, void (WebCore::MockRealtimeVideoSource::*&)(), WebCore::MockRealtimeVideoSource*&>(std::__invoke_memfun_deref, void (WebCore::MockRealtimeVideoSource::*&)(), WebCore::MockRealtimeVideoSource*&) (__f=@0x7f362e052ee8: (void (WebCore::MockRealtimeVideoSource::*)(WebCore::MockRealtimeVideoSource * const)) 0x7f36a3c4d024 <WebCore::MockRealtimeVideoSource::generateFrame()>, __t=@0x7f362e052ef8: 0x7f3687553000) at /usr/include/c++/10.2.0/bits/invoke.h:73 #7 0x00007f36a3c5eebf in std::__invoke<void (WebCore::MockRealtimeVideoSource::*&)(), WebCore::MockRealtimeVideoSource*&>(void (WebCore::MockRealtimeVideoSource::*&)(), WebCore::MockRealtimeVideoSource*&) (__fn=@0x7f362e052ee8: (void (WebCore::MockRealtimeVideoSource::*)(WebCore::MockRealtimeVideoSource * const)) 0x7f36a3c4d024 <WebCore::MockRealtimeVideoSource::generateFrame()>) at /usr/include/c++/10.2.0/bits/invoke.h:95 #8 0x00007f36a3c5ed4d in std::_Bind<void (WebCore::MockRealtimeVideoSource::*(WebCore::MockRealtimeVideoSource*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x7f362e052ee8, __args=...) at /usr/include/c++/10.2.0/functional:416 #9 0x00007f36a3c5ec27 in std::_Bind<void (WebCore::MockRealtimeVideoSource::*(WebCore::MockRealtimeVideoSource*))()>::operator()<, void>() (this=0x7f362e052ee8) at /usr/include/c++/10.2.0/functional:499 #10 0x00007f36a3c5eb46 in WTF::Detail::CallableWrapper<std::_Bind<void (WebCore::MockRealtimeVideoSource::*(WebCore::MockRealtimeVideoSource*))()>, void>::call() (this=0x7f362e052ee0) at DerivedSources/ForwardingHeaders/wtf/Function.h:52 #11 0x00007f369fcda633 in WTF::Function<void ()>::operator()() const (this=0x7f3687553208) at DerivedSources/ForwardingHeaders/wtf/Function.h:83 #12 0x00007f36a3c5eb86 in WTF::RunLoop::Timer<WebCore::MockRealtimeVideoSource>::fired() (this=0x7f36875531e0) at DerivedSources/ForwardingHeaders/wtf/RunLoop.h:184 #13 0x00007f36912de9c1 in operator()(gpointer) const (__closure=0x0, userData=0x7f36875531e0) at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:177 #14 0x00007f36912dea01 in _FUN(gpointer) () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:181 #15 0x00007f36912de00d in operator()(GSource*, GSourceFunc, gpointer) const (__closure=0x0, source=0x561683020ef0, callback=0x7f36912de9e4 <_FUN(gpointer)>, userData=0x7f36875531e0) at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:53 #16 0x00007f36912de05b in _FUN(GSource*, GSourceFunc, gpointer) () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:56 #17 0x00007f368a22004f in g_main_dispatch (context=0x561682c20af0) at ../glib/gmain.c:3325 #18 g_main_context_dispatch (context=0x561682c20af0) at ../glib/gmain.c:4016 #19 0x00007f368a2203f8 in g_main_context_iterate (context=0x561682c20af0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4092 #20 0x00007f368a220713 in g_main_loop_run (loop=0x561682ba1c10) at ../glib/gmain.c:4290 #21 0x00007f36912de624 in WTF::RunLoop::run() () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:108 #22 0x00007f36a11a2c25 in WebKit::AuxiliaryProcessMain<WebKit::WebProcess, WebKit::WebProcessMainGtk>(int, char**) (argc=4, argv=0x7fff70c1f4d8) at ../../Source/WebKit/Shared/AuxiliaryProcessMain.h:68 #23 0x00007f36a11a2438 in WebKit::WebProcessMain(int, char**) (argc=4, argv=0x7fff70c1f4d8) at ../../Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp:66 #24 0x0000561681c97d88 in main(int, char**) (argc=4, argv=0x7fff70c1f4d8) at ../../Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp:45
Attachments
Patch
(5.48 KB, patch)
2020-12-16 02:03 PST
,
Víctor M. Jáquez L.
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Víctor M. Jáquez L.
Comment 1
2020-12-16 02:03:22 PST
Created
attachment 416320
[details]
Patch
Philippe Normand
Comment 2
2020-12-16 12:54:36 PST
Comment on
attachment 416320
[details]
Patch Nice one ;)
EWS
Comment 3
2020-12-16 12:57:37 PST
Committed
r270906
: <
https://trac.webkit.org/changeset/270906
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 416320
[details]
.
Radar WebKit Bug Importer
Comment 4
2020-12-16 12:58:18 PST
<
rdar://problem/72396234
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug