RESOLVED FIXED221698
REGRESSION (r272603): http/tests/media/modern-media-controls/time-control/10-hours-or-more.html is flakey timing out and flakey crashing
https://bugs.webkit.org/show_bug.cgi?id=221698
Summary REGRESSION (r272603): http/tests/media/modern-media-controls/time-control/10-...
Robert Jenner
Reported 2021-02-10 10:59:24 PST
http/tests/media/modern-media-controls/time-control/10-hours-or-more.html Is flakey timing out and flakey crashing in Big Sur and Catalina on Wk1 and Wk2 in Debug and Release. HISTORY URL: https://results.webkit.org/?suite=layout-tests&test=http%2Ftests%2Fmedia%2Fmodern-media-controls%2Ftime-control%2F10-hours-or-more.html TIMEOUT DIFF URL: https://build.webkit.org/results/Apple-BigSur-Release-WK2-Tests/r272657%20(85)/http/tests/media/modern-media-controls/time-control/10-hours-or-more-pretty-diff.html TIMEOUT DIFF TEXT: --- /Volumes/Data/slave/bigsur-release-tests-wk2/build/layout-test-results/http/tests/media/modern-media-controls/time-control/10-hours-or-more-expected.txt +++ /Volumes/Data/slave/bigsur-release-tests-wk2/build/layout-test-results/http/tests/media/modern-media-controls/time-control/10-hours-or-more-actual.txt @@ -1,11 +1,5 @@ -Testing the display of time labels with a video that is over 10 hours. +#PID UNRESPONSIVE - WebKitTestRunner (pid 23914) +FAIL: Timed out waiting for notifyDone to be called -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - - -PASS mediaController.controls.timeControl.elapsedTimeLabel.element.textContent became "00:00:05" - -PASS successfullyParsed is true - -TEST COMPLETE - +#EOF +#EOF CRASH LOG URL: https://build.webkit.org/results/Apple-BigSur-Debug-WK1-Tests/r272647%20(65)/http/tests/media/modern-media-controls/time-control/10-hours-or-more-crash-log.txt CRASH LOG TEXT: No crash log found for DumpRenderTree:9549. stdout: stderr: ERROR: Invalid Content-Type string '' ./platform/network/ParsedContentType.cpp(236) : bool WebCore::ParsedContentType::parseContentType(WebCore::Mode) ASSERTION FAILED: _dataTasks.contains(task) /Volumes/Data/slave/bigsur-debug/build/Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm(270) : -[WebCoreNSURLSession taskCompleted:] 1 0x110786b69 WTFCrash 2 0x12d6323cb WTFCrashWithInfo(int, char const*, char const*, int) 3 0x132b126fc -[WebCoreNSURLSession taskCompleted:] 4 0x132b2fdaa -[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:metrics:]::$_17::operator()() const::'lambda'()::operator()() const 5 0x132b2fc8e WTF::Detail::CallableWrapper<-[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:metrics:]::$_17::operator()() const::'lambda'(), void>::call() 6 0x1107b2392 WTF::Function<void ()>::operator()() const 7 0x110834365 WTF::RunLoop::performWork() 8 0x110838c01 WTF::RunLoop::performWork(void*) 9 0x7fff20430a0c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 10 0x7fff20430974 __CFRunLoopDoSource0 11 0x7fff204306ef __CFRunLoopDoSources0 12 0x7fff2042f121 __CFRunLoopRun 13 0x7fff2042e6ce CFRunLoopRunSpecific 14 0x10d1bfada runTest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) 15 0x10d1bed4a runTestingServerLoop() 16 0x10d1be578 dumpRenderTree(int, char const**) 17 0x10d1c0472 DumpRenderTreeMain(int, char const**) 18 0x10d2a03e2 main 19 0x7fff20353621 start 20 0x2
Attachments
Radar WebKit Bug Importer
Comment 1 2021-02-10 11:01:18 PST
Robert Jenner
Comment 2 2021-02-10 11:09:49 PST
History shows crashing started in r272065(1/29/21) on Big Sur Release Wk2. Was able to duplicate a timeout in Big Sur Debug wk1 on r272638 using the following test: run-webkit-test http/tests/media/modern-media-controls/time-control/10-hours-or-more.html --iterations 1000 -f -1 --debug-rwt-logging RESULTS DIFF TEXT: --- /Volumes/Data/Spades/testbuild-272638/layout-test-results/http/tests/media/modern-media-controls/time-control/10-hours-or-more-expected.txt +++ /Volumes/Data/Spades/testbuild-272638/layout-test-results/http/tests/media/modern-media-controls/time-control/10-hours-or-more-actual.txt @@ -1,11 +1,8 @@ +FAIL: Timed out waiting for notifyDone to be called Testing the display of time labels with a video that is over 10 hours. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". -PASS mediaController.controls.timeControl.elapsedTimeLabel.element.textContent became "00:00:05" -PASS successfullyParsed is true -TEST COMPLETE
Alex Christensen
Comment 3 2021-02-11 18:04:08 PST
Alex Christensen
Comment 4 2021-02-15 17:43:32 PST
This ended up having two causes: a race condition between the state change in WebCoreNSURLSession's cancel method allowing a double removal of a task, and the state machine in TaskData not having enough states to reflect 3 states of having generated a response: before a response is generated, after a response is generated but before the WebCoreNSURLSession calls the CompletionHandler, and after a response is received. I fixed both in the latest iteration, and before it could rarely survive 100 iterations on this test and now it can survive 1000.
Note You need to log in before you can comment on or make changes to this bug.