Bug 234496 - Assertion when reloading webm video: ASSERT(!m_parseTracksStatus);
Summary: Assertion when reloading webm video: ASSERT(!m_parseTracksStatus);
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on: 232740
Blocks:
  Show dependency treegraph
 
Reported: 2021-12-19 18:38 PST by Jean-Yves Avenard [:jya]
Modified: 2021-12-19 19:14 PST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jean-Yves Avenard [:jya] 2021-12-19 18:38:32 PST
STR:
In a debug build:
- Load http://cali.apple.com/qadrift/_media/_streams/webM/source_files/vp8/Big_Buck_Bunny_4K.webm.480p.webm
- Refresh the page

Assertion ASSERT(!m_parseTracksStatus); in MediaFormatReader::didParseTracks

```
lldb) bt
* thread #28, queue = 'WebKit::MediaFormatReader Queue', stop reason = EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
    frame #0: 0x000000013322cafc JavaScriptCore`::WTFCrash() at Assertions.cpp:322:35
    frame #1: 0x000000011857bda4 WebKit`WTFCrashWithInfo((null)=188, (null)="/Users/jyavenard/Work/webkit/OpenSource/Source/WebKit/Shared/mac/MediaFormatReader/MediaFormatReader.cpp", (null)="void WebKit::MediaFormatReader::didParseTracks(SourceBufferPrivateClient::InitializationSegment &&, uint64_t)", (null)=2723) at Assertions.h:732:5
  * frame #2: 0x000000011898f258 WebKit`WebKit::MediaFormatReader::didParseTracks(this=0x0000600000cc9220, segment=0x000000016d072700, errorCode=2008) at MediaFormatReader.cpp:188:5
    frame #3: 0x000000011899d2e0 WebKit`WebKit::MediaFormatReader::parseByteSource(this=0x0000000106004108, errorCode=2008)::$_4::operator()(unsigned long long) const at MediaFormatReader.cpp:162:9
    frame #4: 0x000000011899d1a0 WebKit`WTF::Detail::CallableWrapper<WebKit::MediaFormatReader::parseByteSource(WTF::RetainPtr<OpaqueMTPluginByteSource*>&&)::$_4, void, unsigned long long>::call(this=0x0000000106004100, in=2008) at Function.h:53:39
    frame #5: 0x00000001482d1568 WebCore`WTF::Function<void (unsigned long long)>::operator(this=0x0000000106078220, in=2008)(unsigned long long) const at Function.h:82:35
    frame #6: 0x000000014aa040fc WebCore`WebCore::SourceBufferParserWebM::appendData(this=0x000000010613c0c8)>&&, WebCore::SourceBufferParser::AppendFlags)::$_11::operator()() const at SourceBufferParserWebM.cpp:749:13
    frame #7: 0x000000014aa03e50 WebCore`WTF::Detail::CallableWrapper<WebCore::SourceBufferParserWebM::appendData(WebCore::SourceBufferParser::Segment&&, WTF::CompletionHandler<void ()>&&, WebCore::SourceBufferParser::AppendFlags)::$_11, void>::call(this=0x000000010613c0c0) at Function.h:53:39
    frame #8: 0x00000001332542b0 JavaScriptCore`WTF::Function<void ()>::operator(this=0x0000000106008228)() const at Function.h:82:35
    frame #9: 0x00000001333794b8 JavaScriptCore`WTF::(anonymous namespace)::DispatchWorkItem::operator(this=0x0000000106008220)() at WorkQueueCocoa.cpp:40:25
    frame #10: 0x0000000133377d54 JavaScriptCore`void WTF::dispatchWorkItem<WTF::(anonymous namespace)::DispatchWorkItem>(dispatchContext=0x0000000106008220) at WorkQueueCocoa.cpp:48:5
    frame #11: 0x000000010347e480 libdispatch.dylib`_dispatch_client_callout + 20
    frame #12: 0x0000000103487834 libdispatch.dylib`_dispatch_lane_serial_drain + 980
    frame #13: 0x000000010348889c libdispatch.dylib`_dispatch_lane_invoke + 440
    frame #14: 0x0000000103498184 libdispatch.dylib`_dispatch_workloop_worker_thread + 1232
    frame #15: 0x000000010307fef4 libsystem_pthread.dylib`_pthread_wqthread + 288
(lldb) 
```
Comment 1 Jean-Yves Avenard [:jya] 2021-12-19 19:14:07 PST
This started with bug 232740 as now an error can be returned while reading, which causes an error to be emitted and the error handler will call didParseTracks() again
Comment 2 Radar WebKit Bug Importer 2021-12-19 19:14:32 PST
<rdar://problem/86706195>