Bug 221698 - REGRESSION (r272603): http/tests/media/modern-media-controls/time-control/10-hours-or-more.html is flakey timing out and flakey crashing
Summary: REGRESSION (r272603): http/tests/media/modern-media-controls/time-control/10-...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-02-10 10:59 PST by Robert Jenner
Modified: 2022-06-30 23:10 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Jenner 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
Comment 1 Radar WebKit Bug Importer 2021-02-10 11:01:18 PST
<rdar://problem/74196227>
Comment 2 Robert Jenner 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
Comment 3 Alex Christensen 2021-02-11 18:04:08 PST
r272764
Comment 4 Alex Christensen 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.