[Webkit-unassigned] [Bug 204848] New: [GStreamer] Crashes in MediaPlayerPrivateGStreamer::ensureGstGLContext
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Dec 4 05:33:20 PST 2019
https://bugs.webkit.org/show_bug.cgi?id=204848
Bug ID: 204848
Summary: [GStreamer] Crashes in
MediaPlayerPrivateGStreamer::ensureGstGLContext
Product: WebKit
Version: WebKit Nightly Build
Hardware: PC
OS: Linux
Status: NEW
Severity: Normal
Priority: P2
Component: Media
Assignee: webkit-unassigned at lists.webkit.org
Reporter: mcatanzaro at gnome.org
When WebKit has somehow gotten itself into the "bad state" described in bug #201507, webpages that use GStreamerGL crash instead of falling back to non-AC mode. Once the mysterious bad state is achieved, it becomes 100% reproducible by loading https://riot.igalia.com.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 WebCore::MediaPlayerPrivateGStreamer::ensureGstGLContext (
this=0x7f8c214d5700)
at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1916
1916 GstGLPlatform glPlatform = webkitContext->isEGLContext() ? GST_GL_PLATFORM_EGL : GST_GL_PLATFORM_GLX;
(gdb) bt full
#0 0x00007f8ca4020e5a in WebCore::MediaPlayerPrivateGStreamer::ensureGstGLContext() (this=0x7f8c214d5700)
at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1916
sharedDisplay = <optimized out>
shouldAdoptRef = true
webkitContext = 0x0
glPlatform = <optimized out>
glAPI = <optimized out>
contextHandle = <optimized out>
previousActiveContext = <optimized out>
#1 0x00007f8ca4020e5a in WebCore::MediaPlayerPrivateGStreamer::ensureGstGLContext() (this=0x7f8c214d5700)
at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1861
#2 0x00007f8ca40213f9 in WebCore::MediaPlayerPrivateGStreamer::requestGLContext(char const*)
(this=0x7f8c214d5700, contextType=0x7f8ca42e2725 "gst.gl.GLDisplay")
at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1838
#3 0x00007f8ca402382c in WebCore::MediaPlayerPrivateGStreamer::ensureGLVideoSinkContext() (this=this at entry=0x7f8c214d5700)
at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3700
#4 0x00007f8ca4023af8 in WebCore::MediaPlayerPrivateGStreamer::changePipelineState(GstState) (this=0x7f8c214d5700, newState=GST_STATE_PAUSED) at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1187
currentState = GST_STATE_NULL
pending = GST_STATE_VOID_PENDING
__FUNCTION__ = "changePipelineState"
setStateResult = <optimized out>
pausedOrPlaying = <optimized out>
#5 0x00007f8ca401eff5 in WebCore::MediaPlayerPrivateGStreamer::commitLoad() (this=0x7f8c214d5700) at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:591
__FUNCTION__ = "commitLoad"
#6 0x00007f8ca402f498 in WebCore::MediaPlayerPrivateGStreamer::loadFull(WTF::String const&, WTF::String const&) (this=0x7f8c214d5700, urlString=..., pipelineName=...) at ../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:550
url = {m_string = {static MaxLength = 2147483647, m_impl = {static isRefPtr = <error reading variable: Missing ELF symbol "WTF::RefPtr<WTF::StringImpl, WTF::DumbPtrTraits<WTF::StringImpl> >::isRefPtr".>, m_ptr = 0x7f8c318f96f0}}, m_isValid = 1, m_protocolIsInHTTPFamily = 1, m_cannotBeABaseURL = 0, m_portLength = 0, static maxPortLength = 7, static maxSchemeLength = 67108863, m_schemeEnd = 5, m_userStart = 8, m_userEnd = 8, m_passwordEnd = 8, m_hostEnd = 23, m_pathAfterLastSlash = 30, m_pathEnd = 41, m_queryEnd = 41}
__FUNCTION__ = "loadFull"
#7 0x00007f8ca402f588 in WebCore::MediaPlayerPrivateGStreamer::load(WTF::String const&) (this=<optimized out>, urlString=...) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:56
#8 0x00007f8ca39d5033 in WebCore::MediaPlayer::loadWithNextMediaEngine(WebCore::MediaPlayerFactory const*) (this=this at entry=0x7f8c31721398, current=current at entry=0x0) at DerivedSources/ForwardingHeaders/wtf/URL.h:94
engine = <optimized out>
#9 0x00007f8ca39d533e in WebCore::MediaPlayer::load(WTF::URL const&, WebCore::ContentType const&, WTF::String const&) (this=0x7f8c31721398, url=..., contentType=..., keySystem=...) at ../Source/WebCore/platform/graphics/MediaPlayer.cpp:410
protectedThis = {static isRef = <error reading variable: Missing ELF symbol "WTF::Ref<WebCore::MediaPlayer, WTF::DumbPtrTraits<WebCore::MediaPlayer> >::isRef".>, m_ptr = 0x7f8c31721398}
#10 0x00007f8ca3530a22 in WebCore::HTMLMediaElement::loadResource(WTF::URL const&, WebCore::ContentType&, WTF::String const&) (this=this at entry=0x7f8c4a82f390, initialURL=..., contentType=..., keySystem=...) at ../Source/WebCore/html/HTMLMediaElement.cpp:1618
frame = {static isRefPtr = <error reading variable: Missing ELF symbol "WTF::RefPtr<WebCore::Frame, WTF::DumbPtrTraits<WebCore::Frame> >::isRefPtr".>, m_ptr = 0x7f8c9ad87000}
page = <optimized out>
url = {m_string = {static MaxLength = 2147483647, m_impl = {static isRefPtr = <error reading variable: Missing ELF symbol "WTF::RefPtr<WTF::StringImpl, WTF::DumbPtrTraits<WTF::StringImpl> >::isRefPtr".>, m_ptr = 0x7f8c318f96f0}}, m_isValid = 1, m_protocolIsInHTTPFamily = 1, m_cannotBeABaseURL = 0, m_portLength = 0, static maxPortLength = 7, static maxSchemeLength = 67108863, m_schemeEnd = 5, m_userStart = 8, m_userEnd = 8, m_passwordEnd = 8, m_hostEnd = 23, m_pathAfterLastSlash = 30, m_pathEnd = 41, m_queryEnd = 41}
resource = 0x0
loadAttempted = false
#11 0x00007f8ca3531325 in WebCore::HTMLMediaElement::loadNextSourceChild() (this=0x7f8c4a82f390) at ../Source/WebCore/html/HTMLMediaElement.cpp:1499
contentType = {m_type = {static MaxLength = 2147483647, m_impl = {static isRefPtr = <error reading variable: Missing ELF symbol "WTF::RefPtr<WTF::StringImpl, WTF::DumbPtrTraits<WTF::StringImpl> >::isRefPtr".>, m_ptr = 0x7f8c495cf2c0}}}
keySystem = {static MaxLength = 2147483647, m_impl = {static isRefPtr = <error reading variable: Missing ELF symbol "WTF::RefPtr<WTF::StringImpl, WTF::DumbPtrTraits<WTF::StringImpl> >::isRefPtr".>, m_ptr = 0x0}}
mediaURL = {m_string = {static MaxLength = 2147483647, m_impl = {static isRefPtr = <error reading variable: Missing ELF symbol "WTF::RefPtr<WTF::StringImpl, WTF::DumbPtrTraits<WTF::StringImpl> >::isRefPtr".>, m_ptr = 0x7f8c318f96f0}}, m_isValid = 1, m_protocolIsInHTTPFamily = 1, m_cannotBeABaseURL = 0, m_portLength = 0, static maxPortLength = 7, static maxSchemeLength = 67108863, m_schemeEnd = 5, m_userStart = 8, m_userEnd = 8, m_passwordEnd = 8, m_hostEnd = 23, m_pathAfterLastSlash = 30, m_pathEnd = 41, m_queryEnd = 41}
#12 0x00007f8ca3531715 in WebCore::HTMLMediaElement::<lambda()>::operator() (__closure=<optimized out>) at ../Source/WebCore/html/HTMLMediaElement.cpp:1481
mode = WebCore::HTMLMediaElement::<lambda()>::Children
#13 0x00007f8ca3531715 in WTF::Detail::CallableWrapper<WebCore::HTMLMediaElement::selectMediaResource()::<lambda()>, void>::call(void) (this=0x7f8c214ccf78) at DerivedSources/ForwardingHeaders/wtf/Function.h:52
#14 0x00007f8ca3922b4d in WTF::Function<void ()>::operator()() const (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/Function.h:76
task = {m_callableWrapper = std::unique_ptr<WTF::Detail::CallableWrapperBase<void>> = {get() = 0x7f8c214ccf90}}
#15 0x00007f8ca3922b4d in WebCore::TaskDispatcher<WebCore::Timer>::dispatchOneTask() (this=0x7f8c4a82f798) at ../Source/WebCore/platform/GenericTaskQueue.cpp:110
task = {m_callableWrapper = std::unique_ptr<WTF::Detail::CallableWrapperBase<void>> = {get() = 0x7f8c214ccf90}}
#16 0x00007f8ca3922c1e in WebCore::TaskDispatcher<WebCore::Timer>::sharedTimerFired() () at ../Source/WebCore/platform/GenericTaskQueue.cpp:85
queuedDispatchers = {m_start = 1, m_end = 5, m_buffer = {<WTF::VectorBufferBase<WTF::WeakPtr<WebCore::TaskDispatcher<WebCore::Timer> > >> = {m_buffer = 0x7f8c22482c00, m_capacity = 16, m_size = <optimized out>}, <No data fields>}}
#17 0x00007f8ca394df74 in WebCore::ThreadTimers::sharedTimerFiredInternal() (this=0x7f8c9ad8e370) at ../Source/WebCore/platform/ThreadTimers.h:104
item = {static isRef = <error reading variable: Missing ELF symbol "WTF::Ref<WebCore::ThreadTimerHeapItem, WTF::DumbPtrTraits<WebCore::ThreadTimerHeapItem> >::isRef".>, m_ptr = 0x7f8c214a4600}
timer = <optimized out>
interval = <optimized out>
timeToQuit = <optimized out>
#18 0x00007f8ca394df74 in WebCore::ThreadTimers::sharedTimerFiredInternal() (this=0x7f8c9ad8e370) at ../Source/WebCore/platform/ThreadTimers.cpp:101
#19 0x00007f8ca0341448 in WTF::RunLoop::TimerBase::<lambda(gpointer)>::operator() (__closure=0x0, userData=0x7f8ca4e6a9d0 <WebCore::MainThreadSharedTimer::singleton()::instance+16>) at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:177
timer = 0x7f8ca4e6a9d0 <WebCore::MainThreadSharedTimer::singleton()::instance+16>
source = 0x55ad6cd8fb10
#20 0x00007f8ca0341448 in WTF::RunLoop::TimerBase::<lambda(gpointer)>::_FUN(gpointer) () at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:183
#21 0x00007f8ca09c358e in g_main_context_remove_poll (context=0x55ad6cad3d90, fd=0x55ad6cd8fae0) at ../glib/gmain.c:4456
__func__ = "g_main_context_remove_poll"
#22 0xffffffff06278ef0 in ()
#23 0x0000000000000001 in ()
#24 0x0000000000000000 in ()
--
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/20191204/580cde3e/attachment-0001.htm>
More information about the webkit-unassigned
mailing list