RESOLVED FIXED 207944
(r256583) [ iOS ] http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207944
Summary (r256583) [ iOS ] http/tests/resourceLoadStatistics/prevalent-domains-per-pag...
Truitt Savell
Reported 2020-02-19 09:08:22 PST
http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html This test was introduced in https://trac.webkit.org/changeset/256583/webkit and is a flaky timeout sense introduction. there is also at least one crash in history. history: https://results.webkit.org/?suite=layout-tests&test=http%2Ftests%2FresourceLoadStatistics%2Fprevalent-domains-per-page-database.html
Attachments
Patch (3.61 KB, patch)
2020-02-20 08:22 PST, Kate Cheney
no flags
Patch (4.21 KB, patch)
2020-02-20 10:59 PST, Kate Cheney
no flags
Radar WebKit Bug Importer
Comment 1 2020-02-19 09:08:38 PST
Kate Cheney
Comment 2 2020-02-20 08:22:22 PST
Alexey Proskuryakov
Comment 3 2020-02-20 08:35:16 PST
Comment on attachment 391289 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=391289&action=review r=ews > LayoutTests/http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html:20 > + if (arrayOfDomains.length == 0) { > + askForPrevalentResources(); > + return; This is a tight loop, which is unfriendly to other tests running in parallel. Maybe do it on a 100 ms timer? > LayoutTests/http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html:25 > testFailed("Domain was not successfully marked prevalent."); Does this become dead code now, as we'll keep retrying until timeout? Maybe it's worth to limit retries to say 20 seconds, because timeout is not a very clear failure mode - we often assume that those are not real failures.
Kate Cheney
Comment 4 2020-02-20 08:40:00 PST
Comment on attachment 391289 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=391289&action=review >> LayoutTests/http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html:20 >> + return; > > This is a tight loop, which is unfriendly to other tests running in parallel. Maybe do it on a 100 ms timer? Sounds good, I'll add this. >> LayoutTests/http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html:25 >> testFailed("Domain was not successfully marked prevalent."); > > Does this become dead code now, as we'll keep retrying until timeout? Maybe it's worth to limit retries to say 20 seconds, because timeout is not a very clear failure mode - we often assume that those are not real failures. Do you have an example of another test which does this? I've only seen retrying for a certain number of iterations, not based on time.
Alexey Proskuryakov
Comment 5 2020-02-20 10:09:55 PST
Yes, we have some tests with a setTimeout() for 20 seconds that prints a failure message and calls notifyDone(). We also have some that limit the number of iterations, but I don't know if 200 iterations 100 ms each are guaranteed to complete in a time that's close enough to 20 seconds. Probably not.
Kate Cheney
Comment 6 2020-02-20 10:59:56 PST
Kate Cheney
Comment 7 2020-02-20 11:00:28 PST
Letting ews run.
Kate Cheney
Comment 8 2020-02-20 15:37:13 PST
This test uses UIHelper.activateAt(), which doesn't produce a user gesture that ITP reliably captures on iOS. This is a problem we’ve faced before with ITP tests, and our solution for now is to skip these tests on iOS.
Kate Cheney
Comment 9 2020-02-20 15:45:34 PST
Note You need to log in before you can comment on or make changes to this bug.