Bug 182341

Summary: Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html is flaky
Product: WebKit Reporter: Matt Lewis <jlewis3>
Component: Service WorkersAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: beidson, cdumez, ehutchison, ryanhaddad, webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Matt Lewis 2018-01-31 11:01:43 PST
The following layout test is flaky on macOS WK2

imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html


Flakiness Dashboard:

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=imported%2Fw3c%2Fweb-platform-tests%2Fservice-workers%2Fservice-worker%2Fclients-matchall-client-types.https.html

The test has changed diffs recently but has been flaky since this build: https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20WK2%20(Tests)/builds/1408

the diff at first was:

--- /Volumes/Data/slave/sierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt
+++ /Volumes/Data/slave/sierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-actual.txt
@@ -1,5 +1,7 @@
 
 
-PASS Verify matchAll() with window client type 
-FAIL Verify matchAll() with {window, sharedworker, worker} client types promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: SharedWorker"
+Harness Error (TIMEOUT), message = null
 
+TIMEOUT Verify matchAll() with window client type Test timed out
+NOTRUN Verify matchAll() with {window, sharedworker, worker} client types 
+

But the diff changed to this:

--- /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt
+++ /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-actual.txt
@@ -1,5 +1,4 @@
-
 
 PASS Verify matchAll() with window client type 
-FAIL Verify matchAll() with {window, sharedworker, worker} client types promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: SharedWorker"
+FAIL Verify matchAll() with {window, sharedworker, worker} client types promise_test: Unhandled rejection with value: object "Error: wait_for_state must be passed a ServiceWorker"


Current build:

https://build.webkit.org/results/Apple%20High%20Sierra%20Release%20WK2%20(Tests)/r227901%20(2645)/results.html
https://build.webkit.org/builders/Apple%20High%20Sierra%20Release%20WK2%20(Tests)/builds/2645
Comment 1 Alexey Proskuryakov 2018-02-06 12:32:28 PST
> ReferenceError: Can't find variable: SharedWorker

Looks pretty crazy. Also, this test asserts in debug builds. What's the next step here?

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x00000001050ce404 WTFCrash + 36 (Assertions.cpp:272)
1   com.apple.WebCore             	0x000000010fac028c WebCore::MessagePortChannel::entanglePortWithProcess(WebCore::MessagePortIdentifier const&, WTF::ObjectIdentifier<WebCore::ProcessIdentifierType>) + 524 (MessagePortChannel.cpp:87)
2   com.apple.WebCore             	0x000000010fac2a43 WebCore::MessagePortChannelRegistry::didEntangleLocalToRemote(WebCore::MessagePortIdentifier const&, WebCore::MessagePortIdentifier const&, WTF::ObjectIdentifier<WebCore::ProcessIdentifierType>) + 211 (MessagePortChannelRegistry.cpp:91)
3   com.apple.WebKit              	0x00000001097def7c WebKit::WebProcessProxy::entangleLocalPortInThisProcessToRemote(WebCore::MessagePortIdentifier const&, WebCore::MessagePortIdentifier const&) + 156 (WebProcessProxy.cpp:1275)
4   com.apple.WebKit              	0x000000010980f369 void IPC::callMemberFunctionImpl<WebKit::WebProcessProxy, void (WebKit::WebProcessProxy::*)(WebCore::MessagePortIdentifier const&, WebCore::MessagePortIdentifier const&), std::__1::tuple<WebCore::MessagePortIdentifier, WebCore::MessagePortIdentifier>, 0ul, 1ul>(WebKit::WebProcessProxy*, void (WebKit::WebProcessProxy::*)(WebCore::MessagePortIdentifier const&, WebCore::MessagePortIdentifier const&), std::__1::tuple<WebCore::MessagePortIdentifier, WebCore::MessagePortIdentifier>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) + 185 (HandleMessage.h:41)
Comment 2 Radar WebKit Bug Importer 2018-02-06 12:32:53 PST
<rdar://problem/37284563>
Comment 3 youenn fablet 2018-02-06 12:44:29 PST
(In reply to Alexey Proskuryakov from comment #1)
> > ReferenceError: Can't find variable: SharedWorker

We started to skip SharedWorker related tests but this one is doing more than SharedWorker.
Maybe we should tweak WPT testharness/serviceworker infra to check for SharedWorker and if so try starting to create one, otherwise fail gracefully.

> Looks pretty crazy. Also, this test asserts in debug builds. What's the next
> step here?
> 
> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
> 0   com.apple.JavaScriptCore      	0x00000001050ce404 WTFCrash + 36
> (Assertions.cpp:272)
> 1   com.apple.WebCore             	0x000000010fac028c
> WebCore::MessagePortChannel::entanglePortWithProcess(WebCore::
> MessagePortIdentifier const&,
> WTF::ObjectIdentifier<WebCore::ProcessIdentifierType>) + 524
> (MessagePortChannel.cpp:87)
> 2   com.apple.WebCore             	0x000000010fac2a43
> WebCore::MessagePortChannelRegistry::didEntangleLocalToRemote(WebCore::
> MessagePortIdentifier const&, WebCore::MessagePortIdentifier const&,
> WTF::ObjectIdentifier<WebCore::ProcessIdentifierType>) + 211
> (MessagePortChannelRegistry.cpp:91)
> 3   com.apple.WebKit              	0x00000001097def7c
> WebKit::WebProcessProxy::entangleLocalPortInThisProcessToRemote(WebCore::
> MessagePortIdentifier const&, WebCore::MessagePortIdentifier const&) + 156
> (WebProcessProxy.cpp:1275)
> 4   com.apple.WebKit              	0x000000010980f369 void
> IPC::callMemberFunctionImpl<WebKit::WebProcessProxy, void
> (WebKit::WebProcessProxy::*)(WebCore::MessagePortIdentifier const&,
> WebCore::MessagePortIdentifier const&),
> std::__1::tuple<WebCore::MessagePortIdentifier,
> WebCore::MessagePortIdentifier>, 0ul, 1ul>(WebKit::WebProcessProxy*, void
> (WebKit::WebProcessProxy::*)(WebCore::MessagePortIdentifier const&,
> WebCore::MessagePortIdentifier const&),
> std::__1::tuple<WebCore::MessagePortIdentifier,
> WebCore::MessagePortIdentifier>&&, std::__1::integer_sequence<unsigned long,
> 0ul, 1ul>) + 185 (HandleMessage.h:41)

This is probably bug 182054.
Comment 4 Ryan Haddad 2018-02-09 17:14:08 PST
Marked test as flaky in https://trac.webkit.org/changeset/228348/webkit
Comment 5 Eric Hutchison 2021-09-17 10:31:41 PDT

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