RESOLVED FIXED 189632
Clear pending resource load statistics' writes after tests
https://bugs.webkit.org/show_bug.cgi?id=189632
Summary Clear pending resource load statistics' writes after tests
Woodrow Wang
Reported 2018-09-14 14:19:52 PDT
As of now, pending notifications from the resource load observer are not cleared at the conclusion of tests, which can lead to possible bugs where a pending write unintentionally persists into a subsequent test, leading to unexpected results. This is also a speculative fix for the flakiness in the tests here: https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=http%2Ftests%2FwebAPIStatistics%2Fnavigator-functions-accessed-data-collection.html%20http%2Ftests%2FwebAPIStatistics%2Fcanvas-read-and-write-data-collection.html%20http%2Ftests%2FwebAPIStatistics%2Ffont-load-data-collection.html%20http%2Ftests%2FwebAPIStatistics%2Fscreen-functions-accessed-data-collection.html Regardless of whether or not the flakiness is fixed by this patch, it would be good for and pending writes to be cleared in when resetting the statistics to a consistent state.
Attachments
Patch (2.45 KB, patch)
2018-09-14 14:35 PDT, Woodrow Wang
cdumez: review+
ews-watchlist: commit-queue-
Archive of layout-test-results from ews202 for win-future (12.92 MB, application/zip)
2018-09-14 17:17 PDT, EWS Watchlist
no flags
Patch (2.44 KB, patch)
2018-09-14 17:33 PDT, Woodrow Wang
no flags
Radar WebKit Bug Importer
Comment 1 2018-09-14 14:30:16 PDT
Woodrow Wang
Comment 2 2018-09-14 14:35:27 PDT
John Wilander
Comment 3 2018-09-14 14:40:54 PDT
Looks good to me. ;)
Chris Dumez
Comment 4 2018-09-14 15:51:43 PDT
Comment on attachment 349808 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=349808&action=review > Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:479 > + statisticsStore->scheduleClearInMemory([callbackAggregator = callbackAggregator.copyRef()] { }); Why does this only clear memory data but not persistent one?
Woodrow Wang
Comment 5 2018-09-14 16:19:27 PDT
(In reply to Chris Dumez from comment #4) > Comment on attachment 349808 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=349808&action=review > > > Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:479 > > + statisticsStore->scheduleClearInMemory([callbackAggregator = callbackAggregator.copyRef()] { }); > > Why does this only clear memory data but not persistent one? It would be nice to clear the persistent storage between tests, but I am currently investigating if there might be any additional race conditions added simply by replacing the call to scheduleClearInMemory() to scheduleClearInMemoryAndPersistent(). Particularly, is it possible right now that the completion handler for scheduleClearInMemoryAndPersistent() could be called before the memory store has been cleared?
EWS Watchlist
Comment 6 2018-09-14 17:16:50 PDT
Comment on attachment 349808 [details] Patch Attachment 349808 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/9221897 New failing tests: http/tests/misc/resource-timing-resolution.html
EWS Watchlist
Comment 7 2018-09-14 17:17:02 PDT
Created attachment 349833 [details] Archive of layout-test-results from ews202 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews202 Port: win-future Platform: CYGWIN_NT-6.1-2.10.0-0.325-5-3-x86_64-64bit
Woodrow Wang
Comment 8 2018-09-14 17:33:26 PDT
WebKit Commit Bot
Comment 9 2018-09-17 10:18:36 PDT
Comment on attachment 349837 [details] Patch Clearing flags on attachment: 349837 Committed r236071: <https://trac.webkit.org/changeset/236071>
Note You need to log in before you can comment on or make changes to this bug.