Bug 222825

Summary: [Big Sur arm64] TestWebKitAPI.AppleLanguagesTest.UpdateAppleLanguages is timing out
Product: WebKit Reporter: Ryan Haddad <ryanhaddad>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: ap, cdumez, ehutchison, pvollan, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=222619
https://bugs.webkit.org/show_bug.cgi?id=222988
https://bugs.webkit.org/show_bug.cgi?id=225429
https://bugs.webkit.org/show_bug.cgi?id=221848
Bug Depends on: 223037    
Bug Blocks:    

Description Ryan Haddad 2021-03-05 14:00:03 PST
TestWebKitAPI.AppleLanguagesTest.UpdateAppleLanguages is timing out on the (new) Big Sur Apple Silicon bots

https://build.webkit.org/#/builders/103/builds/19/steps/11/logs/stdio

https://results.webkit.org/?suite=api-tests&test=TestWebKitAPI.AppleLanguagesTest.UpdateAppleLanguages
Comment 1 Ryan Haddad 2021-03-05 14:00:43 PST
This test was recently added with https://trac.webkit.org/changeset/273904/webkit, it does not appear to be timing out on the intel-based bots.
Comment 2 Radar WebKit Bug Importer 2021-03-05 14:01:34 PST
<rdar://problem/75110764>
Comment 3 Chris Dumez 2021-03-09 20:54:18 PST
I have temporarily disabled the test on Apple Silicon in https://commits.webkit.org/235113 because it was causing trouble on the bots.
Comment 4 Chris Dumez 2021-03-10 10:38:45 PST
ENABLE_CFPREFS_DIRECT_MODE seems to be enabled on Apple Silicon too so I don't see why the preference observer would not observe the AppleLanguages preference changing...
Comment 5 Chris Dumez 2021-05-04 15:30:02 PDT
Tentatively re-enabling the test in http://trac.webkit.org/r276985 to see if the test is still failing and what its output looks like.
Comment 6 Chris Dumez 2021-05-05 07:52:53 PDT
It is still failing, this time with this error:
```
    /Volumes/Data/worker/bigsur-release/build/Tools/TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:131
    Value of: didChangeLanguage
      Actual: false
    Expected: true
    
TestWebKitAPI.AppleLanguagesTest.UpdateAppleLanguages Failed
```
Comment 7 Chris Dumez 2021-05-05 11:34:41 PDT
My bet is that this is a WebContent sandboxing issue. I see in our sandbox profile that some rules are CPU-specific. Sadly, I do not have a M1 to debug this.
Comment 8 Chris Dumez 2021-05-05 18:48:05 PDT
Note that the test is flaky on Apple Silicon rather than 100% failing. As a result, this seems to be a potential timing issue.
Comment 9 Chris Dumez 2021-05-05 18:49:50 PDT
(In reply to Chris Dumez from comment #8)
> Note that the test is flaky on Apple Silicon rather than 100% failing. As a
> result, this seems to be a potential timing issue.

According to the flakiness dashboard, the test is also flaky on Intel. However, due to timing, the test is almost always passing on Intel and almost always failing on Apple Silicon.
Comment 10 Chris Dumez 2021-05-05 20:05:43 PDT
With some extra logging and Alexey's help, I was able to figure out that the WKPreferenceObserver does get constructed WKPreferenceObserver.preferenceDidChange does not get called when I update AppleLanguages.

Something seems unreliable with the WKPreferenceObserver. Now that I have found Bug 221848, maybe this is not too surprising. It seems many of the WKPreferenceObserver API tests are currently disabled due to flakiness.
Comment 11 Eric Hutchison 2021-07-21 09:24:41 PDT
This test is now flaky failing on Intel almost always since 7/12/21, r279855.