Bug 140022

Summary: http/tests/media/track-in-band-hls-metadata.html is very flaky
Product: WebKit Reporter: Alexey Proskuryakov <ap>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: eric.carlson, jer.noble, ryanhaddad
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Description Alexey Proskuryakov 2014-12-31 17:08:42 PST
http/tests/media/track-in-band-hls-metadata.html is very flaky on Yosemite. It:
- times out (mostly on bots);
- crashes (with ASan in WebKit1);
- fails (with ASan in WebKit2).

When timing out on bots, there isn't a canplaythrough event dispatched.

When failing on ASan/WebKit2, an extra canplaythrough event is dispatched:
@@ -11,6 +11,10 @@
 EXPECTED (track.kind == 'metadata') OK
 EXPECTED (track.mode == 'disabled') OK
 RUN(track.mode = 'hidden')
+EVENT(canplaythrough)
+
+** Start playback, wait for all cues to load
+RUN(video.play())
 EVENT(canplaythrough)
 
 ** Start playback, wait for all cues to load

The crash looks like this:

==65650==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000044 (pc 0x000112728914 bp 0x7fff5376ff70 sp 0x7fff5376fec0 T0)
    #0 0x112728913 in WTF::MediaTime::isValid const MediaTime.h:92
    #1 0x112724518 in WTF::MediaTime::isInvalid const MediaTime.h:93
    #2 0x112721083 in WTF::MediaTime::compare const MediaTime.cpp:388
    #3 0x112722d09 in WTF::MediaTime::operator>= const MediaTime.cpp:359
    #4 0x123738982 in WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes InbandMetadataTextTrackPrivateAVF.cpp:73
    #5 0x1273df3f9 in WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive MediaPlayerPrivateAVFoundationObjC.mm:2735
    #6 0x12751f1e3 in WTF::FunctionWrapper<void >::operator Functional.h:274
    #7 0x12751ec20 in WTF::BoundFunctionImpl<WTF::FunctionWrapper<void >, void >::operator Functional.h:550
    #8 0x12750f696 in WTF::Function<void >::operator const Functional.h:704
    #9 0x127463ed0 in -[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]::$_7::operator const MediaPlayerPrivateAVFoundationObjC.mm:3030
    #10 0x127463ceb in std::__1::__function::__func<-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]::$_7, std::__1::allocator<-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]::$_7>, void >::operator __functional_base:413
    #11 0x11d4e2ef9 in std::__1::function<void >::operator const functional:1756
    #12 0x127366a03 in WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification MediaPlayerPrivateAVFoundation.cpp:903
    #13 0x12736734f in WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification MediaPlayerPrivateAVFoundation.cpp:813
    #14 0x1273ec9e9 in -[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:] MediaPlayerPrivateAVFoundationObjC.mm:3025
    #15 0x7fff89493c72 in NSKeyValueNotifyObserver (in Foundation) + 381
    #16 0x7fff894909a1 in NSKeyValueWillChange (in Foundation) + 627
    #17 0x7fff894978d0 in -[NSObject(NSKeyValueObserverNotification) willChangeValueForKey:] (in Foundation) + 215
    #18 0x7fff90c11c74 in -[AVPlayerItem willChangeValueForKey:] (in AVFoundation) + 85
    #19 0x7fff90c85937 in __avplayeritem_fpItemNotificationCallback_block_invoke (in AVFoundation) + 2668
    #20 0x10c99d816 in __wrap_dispatch_async_block_invoke (in libclang_rt.asan_osx_dynamic.dylib) + 246
    #21 0x7fff915cc322 in _dispatch_call_block_and_release (in libdispatch.dylib) + 11
    #22 0x7fff915c7c12 in _dispatch_client_callout (in libdispatch.dylib) + 7
    #23 0x7fff915d3cbe in _dispatch_main_queue_callback_4CF (in libdispatch.dylib) + 860
    #24 0x7fff8f1c0c58 in __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ (in CoreFoundation) + 8
    #25 0x7fff8f17d2ee in __CFRunLoopRun (in CoreFoundation) + 2158
    #26 0x7fff8f17c837 in CFRunLoopRunSpecific (in CoreFoundation) + 295
    #27 0x10c5533ad in runTest DumpRenderTree.mm:1921
Comment 1 Ryan Haddad 2016-10-08 13:17:39 PDT
This test is still a flaky timeout across all mac queues. Marked such in http://trac.webkit.org/projects/webkit/changeset/206958
Comment 2 Eric Carlson 2019-11-05 07:01:48 PST

*** This bug has been marked as a duplicate of bug 140827 ***