Bug 201388
Summary: | [GStreamer] Crash involving SourceBufferPrivateGStreamer | ||
---|---|---|---|
Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
Component: | Media | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | Normal | CC: | aboya, mcatanzaro |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | PC | ||
OS: | Linux |
Michael Catanzaro
This occurred on youtube.com. Not reproducible.
(gdb) bt
#0 0x00007f707e250d18 in WTF::doubleHash(unsigned int) (key=<optimized out>)
at DerivedSources/ForwardingHeaders/wtf/DumbPtrTraits.h:43
#1 0x00007f707e250d18 in WTF::HashTable<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >::lookupForWriting<WTF::IdentityHashTranslator<WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >(WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > const&) (key=..., this=0x0)
at DerivedSources/ForwardingHeaders/wtf/HashTable.h:750
#2 0x00007f707e250d18 in WTF::HashTable<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >::lookupForWriting(WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > const&) (key=..., this=0x0) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:469
#3 0x00007f707e250d18 in WTF::HashTable<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >::reinsert(WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >&&) (entry=..., this=0x0) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:1030
#4 0x00007f707e250d18 in WTF::HashTable<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >::rehash(unsigned int, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >*) (this=0x0, newTableSize=<optimized out>, entry=0x7ffc0fb72490) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:1293
#5 0x00007f577d55ac10 in ()
#6 0x00007f577d55b970 in ()
#7 0x00007f707e2538f2 in WTF::Vector<_GstAppSrc*, 0ul, WTF::CrashOnOverflow, 16ul>::expandCapacity(unsigned long) (this=0x7f707e24f323 <WebCore::MediaSourceClientGStreamerMSE::append(WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::Vector<unsigned char, 0ul, WTF::CrashOnOverflow, 16ul>&&)+227>, newMinCapacity=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/Vector.h:327
#8 0x00007f702411cf30 in ()
#9 0x00007f702411d080 in ()
#10 0x00007f707d1cd15f in WTF::HashTable<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >::isEmptyOrDeletedBucket(WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> const&) (value=...) at DerivedSources/ForwardingHeaders/wtf/text/WTFString.h:367
#11 0x00007f707d1cd15f in WTF::HashTableConstIterator<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >::skipEmptyBuckets() (this=<optimized out>, this=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:121
#12 0x00007f707d1cd15f in WTF::HashTableConstIterator<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >::operator++() (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:183
#13 0x00007f707d1cd15f in WTF::HashTableIterator<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >::operator++() (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:266
#14 0x00007f707d1cd15f in WTF::HashTableIteratorAdapter<WTF::HashTable<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >::operator++() (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/HashIterators.h:74
#15 0x00007f707d1cd15f in WTF::HashTableValuesIterator<WTF::HashTable<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >, WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>::operator++() (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/HashIterators.h:157
#16 0x00007f707d1cd15f in WebCore::SourceBuffer::setTimestampOffset(double) (this=<optimized out>, offset=6.9175979694419147e-310) at ../Source/WebCore/Modules/mediasource/SourceBuffer.cpp:186
#17 0x00007ffc0fb725d0 in ()
#18 0x00007f707a772a20 in WTF::GRefPtr<_GMainLoop>::~GRefPtr() (this=<synthetic pointer>, __in_chrg=<optimized out>) at ../Source/WTF/wtf/glib/GRefPtr.h:74
#19 0x00007f707a772a20 in WTF::RunLoop::stop() (this=<optimized out>) at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:116
#20 0x00007f707ae96280 in g_source_callback_funcs () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x000055aa4d777950 in ()
#22 0x00007f707d1c7f16 in WTF::VectorDestructor<true, WebCore::PlatformTimeRanges::Range>::destruct(WebCore::PlatformTimeRanges::Range*, WebCore::PlatformTimeRanges::Range*) (end=<optimized out>, begin=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/Vector.h:63
#23 0x00007f707d1c7f16 in WTF::VectorTypeOperations<WebCore::PlatformTimeRanges::Range>::destruct(WebCore::PlatformTimeRanges::Range*, WebCore::PlatformTimeRanges::Range*) (end=0x413264799c651000, begin=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/Vector.h:243
#24 0x00007f707d1c7f16 in WTF::Vector<WebCore::PlatformTimeRanges::Range, 0ul, WTF::CrashOnOverflow, 16ul>::~Vector() (this=0x7f577d55a650, __in_chrg=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/Vector.h:675
#25 0x00007f707d1c7f16 in WebCore::PlatformTimeRanges::~PlatformTimeRanges() (this=0x7f577d55a650, __in_chrg=<optimized out>) at ../Source/WebCore/platform/graphics/PlatformTimeRanges.h:39
#26 0x00007f707d1c7f16 in std::default_delete<WebCore::PlatformTimeRanges>::operator()(WebCore::PlatformTimeRanges*) const (this=<optimized out>, __ptr=0x7f577d55a650) at /usr/include/c++/9.2.0/bits/unique_ptr.h:81
#27 0x00007f707d1c7f16 in std::default_delete<WebCore::PlatformTimeRanges>::operator()(WebCore::PlatformTimeRanges*) const (this=0x7ffc0fb72580, __ptr=0x7f577d55a650) at /usr/include/c++/9.2.0/bits/unique_ptr.h:75
#28 0x00007f707d1c7f16 in std::unique_ptr<WebCore::PlatformTimeRanges, std::default_delete<WebCore::PlatformTimeRanges> >::~unique_ptr() (this=0x7ffc0fb72580, __in_chrg=<optimized out>) at /usr/include/c++/9.2.0/bits/unique_ptr.h:284
#29 0x00007f707d1c7f16 in WebCore::MediaSource::monitorSourceBuffers() (this=<optimized out>) at ../Source/WebCore/Modules/mediasource/MediaSource.cpp:465
#30 0x00007f707d7a996c in JSC::ClassInfo::isSubClassOf(JSC::ClassInfo const*) const (other=<optimized out>, this=<optimized out>) at DerivedSources/ForwardingHeaders/JavaScriptCore/ClassInfo.h:209
#31 0x00007f707d7a996c in JSC::JSCell::inherits(JSC::VM&, JSC::ClassInfo const*) const (this=0x0, info=<optimized out>, vm=...) at DerivedSources/ForwardingHeaders/JavaScriptCore/JSCellInlines.h:314
#32 0x00007f707d7a996c in JSC::JSCastingHelpers::FinalTypeDispatcher<false>::inheritsGeneric<JSC::JSPromiseDeferred, JSC::JSCell>(JSC::VM&, JSC::JSCell*) (from=0x0, vm=...) at DerivedSources/ForwardingHeaders/JavaScriptCore/JSCast.h:93
#33 0x00007f707d7a996c in JSC::JSCastingHelpers::InheritsTraits<JSC::JSPromiseDeferred>::inherits<JSC::JSCell>(JSC::VM&, JSC::JSCell*) (from=0x0, vm=...) at DerivedSources/ForwardingHeaders/JavaScriptCore/JSCast.h:127
#34 0x00007f707d7a996c in JSC::jsDynamicCast<JSC::JSPromiseDeferred*, JSC::JSCell>(JSC::VM&, JSC::JSCell*) (from=0x0, vm=...) at DerivedSources/ForwardingHeaders/JavaScriptCore/JSCast.h:155
#35 0x00007f707d7a996c in JSC::jsDynamicCast<JSC::JSPromiseDeferred*>(JSC::VM&, JSC::JSValue) (from=..., vm=...) at DerivedSources/ForwardingHeaders/JavaScriptCore/JSCast.h:165
#36 0x00007f707d7a996c in WebCore::DOMGuarded<JSC::JSPromiseDeferred>::guarded() const (this=0x7f57090832b8) at ../Source/WebCore/bindings/js/JSDOMGuardedObject.h:63
#37 0x00007f707d7a996c in WebCore::DeferredPromise::deferred() const (this=0x7f57090832b8) at ../Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:146
#38 0x00007f707d7a996c in WebCore::DeferredPromise::resolve(JSC::ExecState&, JSC::JSValue) (resolution=..., state=..., this=0x7f57090832b8) at ../Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:150
#39 0x00007f707d7a996c in WebCore::DeferredPromise::resolve() (this=0x7f57090832b8) at ../Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:78
#40 0x00007f707d7a996c in WebCore::DeferredPromise::resolve() (this=0x7f57090832b8) at ../Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:70
#41 0x00007f707d7a996c in WebCore::DOMPromiseDeferred<void>::resolve() (this=0x7f5787713640) at ../Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:240
#42 0x00007f707d7a996c in WebCore::HTMLMediaElement::resolvePendingPlayPromises(WTF::Vector<WebCore::DOMPromiseDeferred<void>, 0ul, WTF::CrashOnOverflow, 16ul>&&) (this=<optimized out>, pendingPlayPromises=...) at ../Source/WebCore/html/HTMLMediaElement.cpp:1046
#43 0x00007f707459dcd0 in ()
#44 0x00007f707a772a20 in WTF::GRefPtr<_GMainLoop>::~GRefPtr() (this=<synthetic pointer>, __in_chrg=<optimized out>) at ../Source/WTF/wtf/glib/GRefPtr.h:74
#45 0x00007f707a772a20 in WTF::RunLoop::stop() (this=<optimized out>) at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:116
#46 0x413264799c651000 in ()
#47 0x0000000000000000 in ()
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Michael Catanzaro
I was able to get 30 frames of full backtrace before gdb crashed:
(gdb) bt full
#0 0x00007f707e250d18 in WTF::doubleHash(unsigned int) (key=<optimized out>)
at DerivedSources/ForwardingHeaders/wtf/DumbPtrTraits.h:43
entry = 0x7ffc0fb724d0
k = 0
i = 8
table = 0x0
sizeMask = 0
h = 1278070203
deletedEntry = 0x0
newEntry = <optimized out>
oldEntry = <error reading variable>
reinsertedEntry = <optimized out>
i = <optimized out>
oldTableSize = <optimized out>
oldTable = 0x7f570b4c33c0
newEntry = 0x7f577d55b670
#1 0x00007f707e250d18 in WTF::HashTable<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >::lookupForWriting<WTF::IdentityHashTranslator<WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >(WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > const&) (key=..., this=0x0) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:750
entry = 0x7ffc0fb724d0
k = 0
i = 8
table = 0x0
sizeMask = 0
h = 1278070203
deletedEntry = 0x0
newEntry = <optimized out>
oldEntry = <error reading variable>
reinsertedEntry = <optimized out>
i = <optimized out>
oldTableSize = <optimized out>
oldTable = 0x7f570b4c33c0
newEntry = 0x7f577d55b670
#2 0x00007f707e250d18 in WTF::HashTable<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >::lookupForWriting(WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > const&)
(key=..., this=0x0) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:469
newEntry = <optimized out>
oldEntry = <error reading variable>
reinsertedEntry = <optimized out>
i = <optimized out>
oldTableSize = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--c
oldTable = 0x7f570b4c33c0
newEntry = 0x7f577d55b670
#3 0x00007f707e250d18 in WTF::HashTable<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >::reinsert(WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >&&) (entry=..., this=0x0) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:1030
newEntry = <optimized out>
oldEntry = <error reading variable>
reinsertedEntry = <optimized out>
i = <optimized out>
oldTableSize = <optimized out>
oldTable = 0x7f570b4c33c0
newEntry = 0x7f577d55b670
#4 0x00007f707e250d18 in WTF::HashTable<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > >, WTF::HashTraits<WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> > > >::rehash(unsigned int, WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >*) (this=0x0, newTableSize=<optimized out>, entry=0x7ffc0fb72490) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:1293
oldEntry = <error reading variable>
reinsertedEntry = <optimized out>
i = <optimized out>
oldTableSize = <optimized out>
oldTable = 0x7f570b4c33c0
newEntry = 0x7f577d55b670
#5 0x00007f577d55ac10 in ()
#6 0x00007f577d55b970 in ()
#7 0x00007f707e2538f2 in WTF::Vector<_GstAppSrc*, 0ul, WTF::CrashOnOverflow, 16ul>::expandCapacity(unsigned long) (this=0x7f707e24f323 <WebCore::MediaSourceClientGStreamerMSE::append(WTF::RefPtr<WebCore::SourceBufferPrivateGStreamer, WTF::DumbPtrTraits<WebCore::SourceBufferPrivateGStreamer> >, WTF::Vector<unsigned char, 0ul, WTF::CrashOnOverflow, 16ul>&&)+227>, newMinCapacity=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/Vector.h:327
#8 0x00007f702411cf30 in ()
#9 0x00007f702411d080 in ()
#10 0x00007f707d1cd15f in WTF::HashTable<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >::isEmptyOrDeletedBucket(WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> const&) (value=...) at DerivedSources/ForwardingHeaders/wtf/text/WTFString.h:367
trackBuffer = <optimized out>
newTimestampOffset = {static DefaultTimeScale = 10000000, static MaximumTimeScale = 1000000000, {m_timeValue = 140720572147072, m_timeValueAsDouble = 6.9525200360992858e-310}, m_timeScale = 2099018659, m_timeFlags = 112 'p'}
#11 0x00007f707d1cd15f in WTF::HashTableConstIterator<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >::skipEmptyBuckets() (this=<optimized out>, this=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:121
trackBuffer = <optimized out>
newTimestampOffset = {static DefaultTimeScale = 10000000, static MaximumTimeScale = 1000000000, {m_timeValue = 140720572147072, m_timeValueAsDouble = 6.9525200360992858e-310}, m_timeScale = 2099018659, m_timeFlags = 112 'p'}
#12 0x00007f707d1cd15f in WTF::HashTableConstIterator<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >::operator++() (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:183
trackBuffer = <optimized out>
newTimestampOffset = {static DefaultTimeScale = 10000000, static MaximumTimeScale = 1000000000, {m_timeValue = 140720572147072, m_timeValueAsDouble = 6.9525200360992858e-310}, m_timeScale = 2099018659, m_timeFlags = 112 'p'}
#13 0x00007f707d1cd15f in WTF::HashTableIterator<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >::operator++() (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/HashTable.h:266
trackBuffer = <optimized out>
newTimestampOffset = {static DefaultTimeScale = 10000000, static MaximumTimeScale = 1000000000, {m_timeValue = 140720572147072, m_timeValueAsDouble = 6.9525200360992858e-310}, m_timeScale = 2099018659, m_timeFlags = 112 'p'}
#14 0x00007f707d1cd15f in WTF::HashTableIteratorAdapter<WTF::HashTable<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >::operator++() (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/HashIterators.h:74
trackBuffer = <optimized out>
newTimestampOffset = {static DefaultTimeScale = 10000000, static MaximumTimeScale = 1000000000, {m_timeValue = 140720572147072, m_timeValueAsDouble = 6.9525200360992858e-310}, m_timeScale = 2099018659, m_timeFlags = 112 'p'}
#15 0x00007f707d1cd15f in WTF::HashTableValuesIterator<WTF::HashTable<WTF::AtomString, WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer> >, WTF::AtomStringHash, WTF::HashMap<WTF::AtomString, WebCore::SourceBuffer::TrackBuffer, WTF::AtomStringHash, WTF::HashTraits<WTF::AtomString>, WTF::HashTraits<WebCore::SourceBuffer::TrackBuffer> >::KeyValuePairTraits, WTF::HashTraits<WTF::AtomString> >, WTF::AtomString, WebCore::SourceBuffer::TrackBuffer>::operator++() (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/HashIterators.h:157
trackBuffer = <optimized out>
newTimestampOffset = {static DefaultTimeScale = 10000000, static MaximumTimeScale = 1000000000, {m_timeValue = 140720572147072, m_timeValueAsDouble = 6.9525200360992858e-310}, m_timeScale = 2099018659, m_timeFlags = 112 'p'}
#16 0x00007f707d1cd15f in WebCore::SourceBuffer::setTimestampOffset(double) (this=<optimized out>, offset=6.9175979694419147e-310) at ../Source/WebCore/Modules/mediasource/SourceBuffer.cpp:186
trackBuffer = <optimized out>
newTimestampOffset = {static DefaultTimeScale = 10000000, static MaximumTimeScale = 1000000000, {m_timeValue = 140720572147072, m_timeValueAsDouble = 6.9525200360992858e-310}, m_timeScale = 2099018659, m_timeFlags = 112 'p'}
#17 0x00007ffc0fb725d0 in ()
#18 0x00007f707a772a20 in WTF::GRefPtr<_GMainLoop>::~GRefPtr() (this=<synthetic pointer>, __in_chrg=<optimized out>) at ../Source/WTF/wtf/glib/GRefPtr.h:74
ptr = 0x0
lastMainLoop = {m_ptr = 0x0}
#19 0x00007f707a772a20 in WTF::RunLoop::stop() (this=<optimized out>) at ../Source/WTF/wtf/glib/RunLoopGLib.cpp:116
lastMainLoop = {m_ptr = 0x0}
#20 0x00007f707ae96280 in g_source_callback_funcs () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x000055aa4d777950 in ()
#22 0x00007f707d1c7f16 in WTF::VectorDestructor<true, WebCore::PlatformTimeRanges::Range>::destruct(WebCore::PlatformTimeRanges::Range*, WebCore::PlatformTimeRanges::Range*) (end=<optimized out>, begin=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/Vector.h:63
cur = 0x7f707a772a20 <WTF::RunLoop::stop()+96>
__ptr = @0x7ffc0fb72580: 0x0
ranges = {_M_t = {_M_t = {<std::_Tuple_impl<0, WebCore::PlatformTimeRanges*, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Tuple_impl<1, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Head_base<1, std::default_delete<WebCore::PlatformTimeRanges>, true>> = {<std::default_delete<WebCore::PlatformTimeRanges>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0, WebCore::PlatformTimeRanges*, false>> = {_M_head_impl = 0x0}, <No data fields>}, <No data fields>}}}
#23 0x00007f707d1c7f16 in WTF::VectorTypeOperations<WebCore::PlatformTimeRanges::Range>::destruct(WebCore::PlatformTimeRanges::Range*, WebCore::PlatformTimeRanges::Range*) (end=0x413264799c651000, begin=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/Vector.h:243
__ptr = @0x7ffc0fb72580: 0x0
ranges = {_M_t = {_M_t = {<std::_Tuple_impl<0, WebCore::PlatformTimeRanges*, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Tuple_impl<1, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Head_base<1, std::default_delete<WebCore::PlatformTimeRanges>, true>> = {<std::default_delete<WebCore::PlatformTimeRanges>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0, WebCore::PlatformTimeRanges*, false>> = {_M_head_impl = 0x0}, <No data fields>}, <No data fields>}}}
#24 0x00007f707d1c7f16 in WTF::Vector<WebCore::PlatformTimeRanges::Range, 0ul, WTF::CrashOnOverflow, 16ul>::~Vector() (this=0x7f577d55a650, __in_chrg=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/Vector.h:675
__ptr = @0x7ffc0fb72580: 0x0
ranges = {_M_t = {_M_t = {<std::_Tuple_impl<0, WebCore::PlatformTimeRanges*, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Tuple_impl<1, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Head_base<1, std::default_delete<WebCore::PlatformTimeRanges>, true>> = {<std::default_delete<WebCore::PlatformTimeRanges>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0, WebCore::PlatformTimeRanges*, false>> = {_M_head_impl = 0x0}, <No data fields>}, <No data fields>}}}
#25 0x00007f707d1c7f16 in WebCore::PlatformTimeRanges::~PlatformTimeRanges() (this=0x7f577d55a650, __in_chrg=<optimized out>) at ../Source/WebCore/platform/graphics/PlatformTimeRanges.h:39
__ptr = @0x7ffc0fb72580: 0x0
ranges = {_M_t = {_M_t = {<std::_Tuple_impl<0, WebCore::PlatformTimeRanges*, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Tuple_impl<1, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Head_base<1, std::default_delete<WebCore::PlatformTimeRanges>, true>> = {<std::default_delete<WebCore::PlatformTimeRanges>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0, WebCore::PlatformTimeRanges*, false>> = {_M_head_impl = 0x0}, <No data fields>}, <No data fields>}}}
#26 0x00007f707d1c7f16 in std::default_delete<WebCore::PlatformTimeRanges>::operator()(WebCore::PlatformTimeRanges*) const (this=<optimized out>, __ptr=0x7f577d55a650) at /usr/include/c++/9.2.0/bits/unique_ptr.h:81
__ptr = @0x7ffc0fb72580: 0x0
ranges = {_M_t = {_M_t = {<std::_Tuple_impl<0, WebCore::PlatformTimeRanges*, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Tuple_impl<1, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Head_base<1, std::default_delete<WebCore::PlatformTimeRanges>, true>> = {<std::default_delete<WebCore::PlatformTimeRanges>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0, WebCore::PlatformTimeRanges*, false>> = {_M_head_impl = 0x0}, <No data fields>}, <No data fields>}}}
#27 0x00007f707d1c7f16 in std::default_delete<WebCore::PlatformTimeRanges>::operator()(WebCore::PlatformTimeRanges*) const (this=0x7ffc0fb72580, __ptr=0x7f577d55a650) at /usr/include/c++/9.2.0/bits/unique_ptr.h:75
__ptr = @0x7ffc0fb72580: 0x0
ranges = {_M_t = {_M_t = {<std::_Tuple_impl<0, WebCore::PlatformTimeRanges*, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Tuple_impl<1, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Head_base<1, std::default_delete<WebCore::PlatformTimeRanges>, true>> = {<std::default_delete<WebCore::PlatformTimeRanges>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0, WebCore::PlatformTimeRanges*, false>> = {_M_head_impl = 0x0}, <No data fields>}, <No data fields>}}}
#28 0x00007f707d1c7f16 in std::unique_ptr<WebCore::PlatformTimeRanges, std::default_delete<WebCore::PlatformTimeRanges> >::~unique_ptr() (this=0x7ffc0fb72580, __in_chrg=<optimized out>) at /usr/include/c++/9.2.0/bits/unique_ptr.h:284
__ptr = @0x7ffc0fb72580: 0x0
ranges = {_M_t = {_M_t = {<std::_Tuple_impl<0, WebCore::PlatformTimeRanges*, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Tuple_impl<1, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Head_base<1, std::default_delete<WebCore::PlatformTimeRanges>, true>> = {<std::default_delete<WebCore::PlatformTimeRanges>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0, WebCore::PlatformTimeRanges*, false>> = {_M_head_impl = 0x0}, <No data fields>}, <No data fields>}}}
#29 0x00007f707d1c7f16 in WebCore::MediaSource::monitorSourceBuffers() (this=<optimized out>) at ../Source/WebCore/Modules/mediasource/MediaSource.cpp:465
ranges = {_M_t = {_M_t = {<std::_Tuple_impl<0, WebCore::PlatformTimeRanges*, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Tuple_impl<1, std::default_delete<WebCore::PlatformTimeRanges> >> = {<std::_Head_base<1, std::default_delete<WebCore::PlatformTimeRanges>, true>> = {<std::default_delete<WebCore::PlatformTimeRanges>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0, WebCore::PlatformTimeRanges*, false>> = {_M_head_impl = 0x0}, <No data fields>}, <No data fields>}}}
#30 0x00007f707d7a996c in JSC::ClassInfo::isSubClassOf(JSC::ClassInfo const*) const (other=<optimized out>, this=<optimized out>) at DerivedSources/ForwardingHeaders/JavaScriptCore/ClassInfo.h:209
ci = 0x8
exec = 0x7f570b4c0a80
Traceback (most recent call last):
File "/usr/bin/flatpak-coredumpctl", line 83, in <module>
coredumper.run()
File "/usr/bin/flatpak-coredumpctl", line 58, in run
subprocess.check_call(flatpak_command)
File "/usr/lib64/python3.7/subprocess.py", line 347, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['flatpak', 'run', '--filesystem=home', '--filesystem=/tmp', '--command=gdb', '--devel', 'org.gnome.Epiphany.Devel//master', '/usr/libexec/webkit2gtk-4.0/WebKitWebProcess', '/tmp/tmp_oo28pr_']' returned non-zero exit status 139.
Alicia Boya García
Unfortunately the provided traceback is not very useful. There are many regions without symbols, and those where they were found, it's not clear how that call stack can even be happening.
#18 0x00007f707a772a20 in WTF::GRefPtr<_GMainLoop>::~GRefPtr() (this=<synthetic pointer>, __in_chrg=<optimized out>) at ../Source/WTF/wtf/glib/GRefPtr.h:74
ptr = 0x0
lastMainLoop = {m_ptr = 0x0}
If ptr was really zero there would be no inner calls:
~GRefPtr()
{
if (T* ptr = m_ptr)
derefGPtr(ptr);
}
The only explanation for that is that it was optimized out but the debugger was unable to mark it as such... or the stack was corrupted.
#15 0x00007f707d1cd15f in HashTableValuesIterator<HashTable<AtomString, KeyValuePair<AtomString, SourceBuffer::TrackBuffer>, [...]>::
operator++() (this=<synthetic pointer>) at DerivedSources/ForwardingHeaders/wtf/HashIterators.h:157
#16 0x00007f707d1cd15f in WebCore::SourceBuffer::setTimestampOffset(double) (this=<optimized out>, offset=6.9175979694419147e-310) at ../Source/WebCore/Modules/mediasource/SourceBuffer.cpp:186
#17 0x00007ffc0fb725d0 in ()
#18 0x00007f707a772a20 in WTF::GRefPtr<_GMainLoop>::~GRefPtr() (this=<synthetic pointer>, __in_chrg=<optimized out>) at ../Source/WTF/wtf/glib/GRefPtr.h:74
That GMainLoop unref' somehow ends up triggering SourceBuffer::setTimestampOffset(), which is the first MSE piece of code here. In particular, it has to be crashing while traversing this iterator, since it's the only one in that function:
for (auto& trackBuffer : m_trackBufferMap.values()) {
[...]
}
So far so good, but then this happens...
#7 0x00007f707e2538f2 in WTF::Vector<_GstAppSrc*>::expandCapacity(unsigned long) (this=0x7f707e24f323 <MediaSourceClientGStreamerMSE::append(RefPtr<SourceBufferPrivateGStreamer>, Vector<unsigned char>&&)+227>, newMinCapacity=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/Vector.h:327
#8 0x00007f702411cf30 in ()
#9 0x00007f702411d080 in ()
#10 0x00007f707d1cd15f in HashTable<AtomString, KeyValuePair<AtomString, SourceBuffer::TrackBuffer>, [...]>::isEmptyOrDeletedBucket(KeyValuePair<AtomString, SourceBuffer::TrackBuffer> const&) (value=...) at DerivedSources/ForwardingHeaders/wtf/text/WTFString.h:367
[more HashMap iterator internals]
How come advancing an iterator causes a Vector<GstAppSrc*> to expand capacity? That makes absolutely no sense. And the `this` argument of that call makes even less sense! It's not even a vector, but a pointer to the program code.
The most plausible explanation for a stack like this is a stack corruption. Unfortunately by the time the program crashes it's already late to see the culprit. If you can get an asan traceback where the actual corruption occurs, that would be actually helpful.
Alicia Boya García
BTW, what revision this did occur in?
Michael Catanzaro
(In reply to Alicia Boya García from comment #3)
> BTW, what revision this did occur in?
2.25.4
(In reply to Alicia Boya García from comment #2)
> The most plausible explanation for a stack like this is a stack corruption.
Very plausible. We have a serious problem with both UI process and web process memory corruption right now.
Bug #199295 could be related.
> Unfortunately by the time the program crashes it's already late to see the
> culprit. If you can get an asan traceback where the actual corruption
> occurs, that would be actually helpful.
No chance of this, because the crash is not reproducible.
My attempts to make asan builds of Tech Preview have all failed anyway. Help welcome.
Alicia Boya García
I'm closing this as INVALID since there is not enough information to investigate the bug. It also does not need necessarily have anything to do with GStreamer or SourceBufferPrivateGStreamer; even if calls to these methods were made recently, the stack corruption may have occurred anywhere.
It may indeed be a duplicate of https://bugs.webkit.org/show_bug.cgi?id=199295 or it may be a different bug, but there is not much we can do with the information so far.