Summary: | REGRESSION(r269435): [Debug][GStreamer] Several tests are crashing | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Diego Pino <dpino> | ||||||
Component: | New Bugs | Assignee: | Philippe Normand <pnormand> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | achristensen, bugs-noreply, calvaris, cgarcia, eric.carlson, ews-watchlist, glenn, gustavo, jer.noble, menard, philipj, pnormand, sergio, vjaquez, webkit-bug-importer | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | WebKit Nightly Build | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Diego Pino
2020-11-09 19:25:20 PST
I post here, as an example, the stacktrace of one of the tests crashing: $ Tools/Script/run-webkit-tests --gtk --debug http/tests/media/media-seeking-no-ranges-server.html Thread 1 (Thread 0x7f752d9ff700 (LWP 5876)): #0 WTFCrash() () at ../../Source/WTF/wtf/Assertions.cpp:295 #1 0x00007f75a08343a7 in CRASH_WITH_INFO(...) () at DerivedSources/ForwardingHeaders/wtf/Assertions.h:713 #2 0x00007f75a18a95b8 in WTF::WeakPtr<WebCore::Frame, WTF::EmptyCounter>::get() const (this=0x7f758843ab40) at DerivedSources/ForwardingHeaders/wtf/WeakPtr.h:94 #3 0x00007f75a424204c in WebCore::FrameDestructionObserver::frame() const (this=0x7f758843ab38) at ../../Source/WebCore/page/FrameDestructionObserver.cpp:47 #4 0x00007f75a3b9382e in WebCore::HTMLMediaElement::mediaPlayerReferrer() const (this=0x7f758842c9e0) at ../../Source/WebCore/html/HTMLMediaElement.cpp:6745 #5 0x00007f75a459414c in WebCore::MediaPlayer::referrer() const (this=0x7f752ee3bd80) at ../../Source/WebCore/platform/graphics/MediaPlayer.cpp:1344 #6 0x00007f75a1eca76c in webKitWebSrcMakeRequest(WebKitWebSrc*, WTF::DataMutex<WebKitWebSrcPrivate::StreamingMembers, WTF::OwnerAwareLockAdapter<WTF::Lock> >::LockedWrapper&) (src=0x5621c79a6e50 [WebKitWebSrc|s #7 0x00007f75a1ec93ab in webKitWebSrcCreate(GstPushSrc*, GstBuffer**) (pushSrc=0x5621c79a6e50 [WebKitWebSrc|source], buffer=0x7f752d9fea98) at ../../Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGSt #8 0x00007f758bb92ccd in gst_base_src_get_range (src=src@entry=0x5621c79a6e50 [WebKitWebSrc|source], offset=offset@entry=0, length=<optimized out>, length@entry=4096, buf=buf@entry=0x7f752d9feb70) at ../libs/gs #9 0x00007f758bb95bd2 in gst_base_src_loop (pad=0x5621c7973580 [GstPad|src]) at ../libs/gst/base/gstbasesrc.c:2911 #10 0x00007f758bac2d67 in gst_task_func (task=0x5621c74e05f0 [GstTask|source:src]) at ../gst/gsttask.c:328 #11 0x00007f758b13a784 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354 #12 0x00007f758b139e81 in g_thread_proxy (data=0x5621c786f580) at ../glib/gthread.c:819 #13 0x00007f758c2054d2 in start_thread (arg=<optimized out>) at pthread_create.c:477 #14 0x00007f7589d492a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Looks like non-thread-safe use of MediaPlayer::referrer. My naive self guesses this may be from webKitWebSrcMakeRequest and the solution may be to store the referrer rather than querying it from the gstreamer thread. Created attachment 414432 [details]
Patch
Committed r269951: <https://trac.webkit.org/changeset/269951> All reviewed patches have been landed. Closing bug and clearing flags on attachment 414432 [details]. |