Bug 207847 - REGRESSION: (r256232) [ Mac wk1 Release ] resize-observer/delete-observers-in-callbacks.html is flaky failing.
Summary: REGRESSION: (r256232) [ Mac wk1 Release ] resize-observer/delete-observers-in...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Mac macOS 10.14
: P2 Normal
Assignee: Chris Dumez
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-02-17 10:29 PST by Jason Lawrence
Modified: 2020-03-13 15:35 PDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Lawrence 2020-02-17 10:29:07 PST
resize-observer/delete-observers-in-callbacks.html

Description:
This test is flaky failing on Mac wk1 Release. The first recorded failure appears to be at r256232.

History:
https://results.webkit.org/?limit=50000&suite=layout-tests&test=resize-observer%2Fdelete-observers-in-callbacks.html&platform=mac


Diff:
--- /Volumes/Data/slave/catalina-release-tests-wk1/build/layout-test-results/resize-observer/delete-observers-in-callbacks-expected.txt
+++ /Volumes/Data/slave/catalina-release-tests-wk1/build/layout-test-results/resize-observer/delete-observers-in-callbacks-actual.txt
@@ -1,5 +1,5 @@
 t1
 
-PASS ResizeObserver implemented 
-PASS Test deleting observer in callbacks 
+FAIL ResizeObserver implemented assert_own_property: expected property "ResizeObserver" missing
+FAIL Test deleting observer in callbacks promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: ResizeObserver"
Comment 1 Radar WebKit Bug Importer 2020-02-17 10:29:29 PST
<rdar://problem/59516099>
Comment 2 Jason Lawrence 2020-02-17 10:34:07 PST
I have marked this test as failing while this issue is investigated.
https://trac.webkit.org/changeset/256744/webkit
Comment 3 Jacob Uphoff 2020-02-17 15:52:05 PST
Reproducible by running the test in iterations. Ran this command: 'run-webkit-tests --root release-256766 resize-observer/delete-observers-in-callbacks.html -1 -f --iterations 5000' and failed 8 times.
Comment 4 Jacob Uphoff 2020-02-17 16:03:51 PST
Looks like it might not be a recent regression, I have run the test back to commit 256422 and am seeing the failure there. It is curious because the failures will happen pretty early on in the iteration runs then pass for the rest of them.


Results:

[8/5002] resize-observer/delete-observers-in-callbacks.html failed unexpectedly (text diff)
[8/5002] resize-observer/delete-observers-in-callbacks.html failed unexpectedly (text diff)
[10/5002] resize-observer/delete-observers-in-callbacks.html failed unexpectedly (text diff)
[11/5002] resize-observer/delete-observers-in-callbacks.html failed unexpectedly (text diff)
[12/5002] resize-observer/delete-observers-in-callbacks.html failed unexpectedly (text diff)
[18/5002] resize-observer/delete-observers-in-callbacks.html failed unexpectedly (text diff)
[22/5002] resize-observer/delete-observers-in-callbacks.html failed unexpectedly (text diff)
[24/5002] resize-observer/delete-observers-in-callbacks.html failed unexpectedly (text diff)
No handlers could be found for logger "webkitpy.common.interrupt_debugging"

Retrying 1 unexpected failure ...

Running 1 DumpRenderTree.

[1/1] resize-observer/delete-observers-in-callbacks.html failed unexpectedly (text diff)

4994 tests ran as expected, 8 didn't:
Comment 5 Jason Lawrence 2020-02-17 16:46:59 PST
I am able to reproduce this issue with r256232, but not with r256231 using this command:

run-webkit-tests resize-observer/delete-observers-in-callbacks.html --force -f --iterations 5000 --exit-after-n-failures 5 -1
Comment 6 Chris Dumez 2020-03-13 13:37:26 PDT
Looks like ResizeObserver is enabled by a setting:
EnabledBySetting=ResizeObserver
Comment 7 Chris Dumez 2020-03-13 13:40:18 PDT
The test also uses the following header:
<!DOCTYPE html><!-- webkit-test-runner [ experimental:ResizeObserverEnabled=true ] -->
Comment 8 Chris Dumez 2020-03-13 13:59:29 PDT
(In reply to Chris Dumez from comment #7)
> The test also uses the following header:
> <!DOCTYPE html><!-- webkit-test-runner [
> experimental:ResizeObserverEnabled=true ] -->

The issue is that some settings can be set either via internals JS API or via <!-- webkit-test-runner -->. Depending on which order you do these things, you'll end up with a different results. Also, to make things more complicated, once the window object has been created, changes to the ResizeObserverEnabled setting are no longer reflected on that Window object. It is important that ResizeObserverEnabled setting be enabled *before* we construct the window.
Comment 9 Chris Dumez 2020-03-13 15:32:54 PDT
Reverted guilty patch in <https://trac.webkit.org/changeset/258438>.
Comment 10 Chris Dumez 2020-03-13 15:35:15 PDT
Committed r258440: <https://trac.webkit.org/changeset/258440>