Bug 206672

Summary: REGRESSION: [iOS release] http/tests/security/window-named-proto.html is a flaky timing out
Product: WebKit Reporter: Jason Lawrence <Lawrence.j>
Component: WebKit Misc.Assignee: Jiewen Tan <jiewen_tan>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, cdumez, commit-queue, ggaren, jiewen_tan, koivisto, rniwa, tsavell, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch none

Jason Lawrence
Reported 2020-01-23 10:06:43 PST
http/tests/security/window-named-proto.html Description: This test is timing out. It looks like this regressed around 252941. I have not tried to reproduce this. History: https://results.webkit.org/?limit=50000&suite=layout-tests&test=http%2Ftests%2Fsecurity%2Fwindow-named-proto.html Diff: --- /Volumes/Data/slave/ios-simulator-13-release-tests-wk2/build/layout-test-results/http/tests/security/window-named-proto-expected.txt +++ /Volumes/Data/slave/ios-simulator-13-release-tests-wk2/build/layout-test-results/http/tests/security/window-named-proto-actual.txt @@ -1,2 +1,3 @@ -CONSOLE MESSAGE: line 2: TypeError: null is not an object (evaluating 'document.body.innerHTML') +#PID UNRESPONSIVE - WebKitTestRunnerApp (pid 29959) +FAIL: Timed out waiting for notifyDone to be called
Attachments
Patch (1.59 KB, patch)
2020-01-30 14:05 PST, Jiewen Tan
no flags
Patch (1.61 KB, patch)
2020-01-30 14:09 PST, Jiewen Tan
no flags
Radar WebKit Bug Importer
Comment 1 2020-01-23 10:07:09 PST
Truitt Savell
Comment 2 2020-01-24 09:35:25 PST
This is a highly intermittent timeout on iOS iOS Release
Alexey Proskuryakov
Comment 3 2020-01-24 23:20:55 PST
When I increase history limit, I see even older timeouts, starting with r251319. It is pretty rare, so history doesn't point at the culprit, but this is sort of consistent with HTML event loop changes.
Jiewen Tan
Comment 4 2020-01-30 14:05:27 PST
Jiewen Tan
Comment 5 2020-01-30 14:09:40 PST
Ryosuke Niwa
Comment 6 2020-01-30 14:33:53 PST
Comment on attachment 389288 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=389288&action=review > Source/WebCore/platform/network/DataURLDecoder.cpp:46 > - static auto& queue = WorkQueue::create("org.webkit.DataURLDecoder").leakRef(); > + static auto& queue = WorkQueue::create("org.webkit.DataURLDecoder", WorkQueue::Type::Serial, WorkQueue::QOS::UserInitiated).leakRef(); Hm... what's the default QOS? I thought all threads we start will be at least user initiated by default?
Jiewen Tan
Comment 7 2020-01-30 14:44:29 PST
(In reply to Ryosuke Niwa from comment #6) > Comment on attachment 389288 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=389288&action=review > > > Source/WebCore/platform/network/DataURLDecoder.cpp:46 > > - static auto& queue = WorkQueue::create("org.webkit.DataURLDecoder").leakRef(); > > + static auto& queue = WorkQueue::create("org.webkit.DataURLDecoder", WorkQueue::Type::Serial, WorkQueue::QOS::UserInitiated).leakRef(); > > Hm... what's the default QOS? I thought all threads we start will be at > least user initiated by default? static Ref<WorkQueue> create(const char* name, Type = Type::Serial, QOS = QOS::Default);
Chris Dumez
Comment 8 2020-01-30 14:57:46 PST
Comment on attachment 389288 [details] Patch Makes sense to use user-initiated IMO since this is the priority on the WebContent process' main thread and since this thread getting pre-empted would slow down a load, which would be visible to the user.
Ryosuke Niwa
Comment 9 2020-01-30 15:11:38 PST
(In reply to Chris Dumez from comment #8) > Comment on attachment 389288 [details] > Patch > > Makes sense to use user-initiated IMO since this is the priority on the > WebContent process' main thread and since this thread getting pre-empted > would slow down a load, which would be visible to the user. FWIW, I'm pretty sure WebContent's main thread runs at user interactive QOS, which is slightly higher priority than user-initiated QOS.
Chris Dumez
Comment 10 2020-01-30 15:18:17 PST
(In reply to Ryosuke Niwa from comment #9) > (In reply to Chris Dumez from comment #8) > > Comment on attachment 389288 [details] > > Patch > > > > Makes sense to use user-initiated IMO since this is the priority on the > > WebContent process' main thread and since this thread getting pre-empted > > would slow down a load, which would be visible to the user. > > FWIW, I'm pretty sure WebContent's main thread runs at user interactive QOS, > which is slightly higher priority than user-initiated QOS. Not 100% sure about that, would need to be validated on device to be sure. Either way, I do think that using user-initiated for data url is better than Default. I think it would be riskier to use UserInteractive.
Jiewen Tan
Comment 11 2020-01-31 00:23:53 PST
Comment on attachment 389288 [details] Patch Chris, thanks for r+ this patch.
WebKit Commit Bot
Comment 12 2020-01-31 01:07:10 PST
Comment on attachment 389288 [details] Patch Clearing flags on attachment: 389288 Committed r255487: <https://trac.webkit.org/changeset/255487>
WebKit Commit Bot
Comment 13 2020-01-31 01:07:12 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.