RESOLVED FIXED 199117
REGRESSION: [ Mojave+ Debug WK1 ] Layout Test imported/blink/storage/indexeddb/blob-basics-metadata.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=199117
Summary REGRESSION: [ Mojave+ Debug WK1 ] Layout Test imported/blink/storage/indexedd...
Truitt Savell
Reported 2019-06-21 13:57:08 PDT
The following layout test is flaky on Mojave Debug WK1 imported/blink/storage/indexeddb/blob-basics-metadata.html Probable cause: Unknown, this issue first appeared on this build: https://build.webkit.org/builders/Apple%20Mojave%20Debug%20WK1%20(Tests)/builds/3751 Possibly 246039 Flakiness Dashboard: https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=imported%2Fblink%2Fstorage%2Findexeddb%2Fblob-basics-metadata.html These was a pass at 29 seconds, possibly marking this test as slow will let it pass.
Attachments
Patch (4.18 KB, patch)
2019-12-06 15:51 PST, Jonathan Bedard
no flags
Patch (2.80 KB, patch)
2019-12-09 11:08 PST, Jonathan Bedard
no flags
Patch (2.87 KB, patch)
2020-04-14 13:15 PDT, Jonathan Bedard
no flags
Patch (2.80 KB, patch)
2020-04-15 07:50 PDT, Jonathan Bedard
no flags
Truitt Savell
Comment 1 2019-06-21 13:57:53 PDT
I cannot reproduce this locally, I am getting instant passes.
Alexey Proskuryakov
Comment 2 2019-06-22 13:56:48 PDT
storage/indexeddb/modern/objectstore-autoincrement-types.html got slow at the same time. Looking at the bots on the queue, it looks like this started after testing was interrupted, which likely means that we installed a new OS, or maybe just rebooted. Ryan, do you remember what happened to these bots on June 3rd? PASS 3745 r246034 bot183 3746 r246035 bot183 Test interrupted: 3747 3748 FAIL 3749 r246036 bot184 3750 r246037 bot183 3751 r246038 bot184
Alexey Proskuryakov
Comment 3 2019-06-22 13:58:01 PDT
Actually, I suspect that this could be similar to rdar://problem/50948871. Let's discuss in e-mail if mitigations for that radar work here too.
Radar WebKit Bug Importer
Comment 4 2019-07-11 12:59:11 PDT
Alexey Proskuryakov
Comment 5 2019-07-22 14:34:11 PDT
*** Bug 200002 has been marked as a duplicate of this bug. ***
Jonathan Bedard
Comment 6 2019-12-06 15:34:01 PST
According to Alexey: "We probably just need to add opt out in JSC, disabling SMT mitigations on tests (that would be in JSC and webkitpy code, not in machine configuration)." I've added this to run-javascriptcore-tests as well as WebKitTestRunner and DumpRenderTree.
Jonathan Bedard
Comment 7 2019-12-06 15:51:39 PST
Alexey Proskuryakov
Comment 8 2019-12-07 09:56:20 PST
Comment on attachment 385052 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=385052&action=review > Source/JavaScriptCore/runtime/JSCConfig.h:55 > + setenv("JSC_useKernTCSM", "false", 0); This doesn't compile on Windows. But also, is it right to do this in configureForTesting? We certainly don't want to disable this for performance tests, for example. This function name is so generic that I can't tell.
Jonathan Bedard
Comment 9 2019-12-09 08:47:00 PST
(In reply to Alexey Proskuryakov from comment #8) > Comment on attachment 385052 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=385052&action=review > > > Source/JavaScriptCore/runtime/JSCConfig.h:55 > > + setenv("JSC_useKernTCSM", "false", 0); > > This doesn't compile on Windows. > > But also, is it right to do this in configureForTesting? We certainly don't > want to disable this for performance tests, for example. This function name > is so generic that I can't tell. I think this is the right place to do it, but we might want some JSC folks to verify. As far as I can tell, this function is used in a few API tests along with DumpRenderTree and some of the JSC test binaries. (I should actually remove the environment variable in run-javascriptcore-tests) Since we tend to use production binaries to do performance testing, I don't believe it will be run during performance testing, but if we have any performance tests which use DumpRenderTree or WebKitTestRunner as their harness. We could also move these to the harness script entirely, but (as previously mentioned) that wouldn't apply to manual test runs.
Mark Lam
Comment 10 2019-12-09 10:29:03 PST
Comment on attachment 385052 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=385052&action=review >>> Source/JavaScriptCore/runtime/JSCConfig.h:55 >>> + setenv("JSC_useKernTCSM", "false", 0); >> >> This doesn't compile on Windows. >> >> But also, is it right to do this in configureForTesting? We certainly don't want to disable this for performance tests, for example. This function name is so generic that I can't tell. > > I think this is the right place to do it, but we might want some JSC folks to verify. > > As far as I can tell, this function is used in a few API tests along with DumpRenderTree and some of the JSC test binaries. (I should actually remove the environment variable in run-javascriptcore-tests) Since we tend to use production binaries to do performance testing, I don't believe it will be run during performance testing, but if we have any performance tests which use DumpRenderTree or WebKitTestRunner as their harness. > > We could also move these to the harness script entirely, but (as previously mentioned) that wouldn't apply to manual test runs. I think this is not necessary. It is also hacky to set env vars inside JavaScriptCore. > Tools/Scripts/run-javascriptcore-tests:492 > +if (isAppleMacWebKit() || isEmbeddedWebKit()) { > + $envVars .= " JSC_useKernTCSM=false"; > +} I think this should be sufficient for JSC tests. > Tools/WebKitTestRunner/ios/TestControllerIOS.mm:109 > + setenv("JSC_useKernTCSM", "false", 0); > + setenv("__XPC_JSC_useKernTCSM", "false", 0); This is also hacky. Can you set this in the driver script instead? > Tools/WebKitTestRunner/mac/TestControllerMac.mm:93 > + setenv("JSC_useKernTCSM", "false", 0); > + setenv("__XPC_JSC_useKernTCSM", "false", 0); Ditto.
Jonathan Bedard
Comment 11 2019-12-09 11:08:11 PST
Mark Lam
Comment 12 2019-12-09 11:11:44 PST
Comment on attachment 385171 [details] Patch LGTM, but perhaps another reviewer who knows the test scripts better should take a look as well.
Saam Barati
Comment 13 2019-12-09 12:18:19 PST
Comment on attachment 385171 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=385171&action=review > Tools/Scripts/run-javascriptcore-tests:491 > + $envVars .= " JSC_useKernTCSM=false"; Why? Don’t we want our testing to test this?
Jonathan Bedard
Comment 14 2019-12-09 12:35:25 PST
(In reply to Saam Barati from comment #13) > Comment on attachment 385171 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=385171&action=review > > > Tools/Scripts/run-javascriptcore-tests:491 > > + $envVars .= " JSC_useKernTCSM=false"; > > Why? Don’t we want our testing to test this? I think it debatable if we want this variable set. We definitely need it for layout tests, since we have so many processes running at once, it's about a 10% performance improvement on test runtime, last I checked. I know Alexey thought that JSC correctness tests could benefit from the gains, but I don't actually know if they're faster in practice.
Alexey Proskuryakov
Comment 15 2019-12-09 16:49:15 PST
> Why? Don’t we want our testing to test this? When this was discussed a few months back, pretty sure the consensus was that we want to run the tests quickly, so we need to disable the feature. As for setting it in the binary - this is desirable because the fewer differences there are between running tests in the harness and without the harness, the better.
Jonathan Bedard
Comment 16 2019-12-10 09:01:39 PST
(In reply to Alexey Proskuryakov from comment #15) > > Why? Don’t we want our testing to test this? > > When this was discussed a few months back, pretty sure the consensus was > that we want to run the tests quickly, so we need to disable the feature. > > As for setting it in the binary - this is desirable because the fewer > differences there are between running tests in the harness and without the > harness, the better. Maybe we should land it in the scripts first and then have a separate discussion about if we want it in the binaries. There are arguments both ways, but I don't think anyone has said we shouldn't be doing this in automation.
Truitt Savell
Comment 17 2020-01-16 10:26:27 PST
marked storage/indexeddb/modern/objectstore-autoincrement-types.html as timing out in https://trac.webkit.org/changeset/254691/webkit
Alexey Proskuryakov
Comment 18 2020-04-14 09:35:56 PDT
Comment on attachment 385171 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=385171&action=review > Tools/Scripts/webkitpy/port/base.py:904 > + 'JSC_useKernTCSM', It's not immediately clear why this doesn't include an __XPC_DYLD variant. > Tools/Scripts/webkitpy/port/driver.py:440 > + environment['__XPC_JSC_useKernTCSM'] = environment['JSC_useKernTCSM'] This looks incorrect, should it be __XPC_DYLD_JSC_useKernTCSM
Mark Lam
Comment 19 2020-04-14 09:48:46 PDT
Comment on attachment 385171 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=385171&action=review >> Tools/Scripts/webkitpy/port/driver.py:440 >> + environment['__XPC_JSC_useKernTCSM'] = environment['JSC_useKernTCSM'] > > This looks incorrect, should it be __XPC_DYLD_JSC_useKernTCSM __XPC_ is correct. Should not be adding DYLD.
Alexey Proskuryakov
Comment 20 2020-04-14 10:32:25 PDT
Yes, you are correct of course.
Jonathan Bedard
Comment 21 2020-04-14 13:15:19 PDT
Jonathan Bedard
Comment 22 2020-04-14 13:38:50 PDT
(In reply to Jonathan Bedard from comment #21) > Created attachment 396455 [details] > Patch Tested this again with layout tests, verified that it's about a 10% speed up (ran only fast). I think we should land this.
Alexey Proskuryakov
Comment 23 2020-04-14 17:26:01 PDT
Comment on attachment 396455 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=396455&action=review Seems like there is agreement about that, marking r+. > Tools/Scripts/run-javascriptcore-tests:526 > +if (isAppleMacWebKit() || isEmbeddedWebKit()) { Does this work for embedded, and is it necessary? > Tools/Scripts/webkitpy/port/driver.py:444 > + > + Two newlines?
Jonathan Bedard
Comment 24 2020-04-15 07:47:12 PDT
Comment on attachment 396455 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=396455&action=review >> Tools/Scripts/run-javascriptcore-tests:526 >> +if (isAppleMacWebKit() || isEmbeddedWebKit()) { > > Does this work for embedded, and is it necessary? Looking through the code, seems like it will not work for embedded builds (it only works on x86, to be more specific)
Jonathan Bedard
Comment 25 2020-04-15 07:50:01 PDT
EWS
Comment 26 2020-04-15 08:46:55 PDT
Committed r260130: <https://trac.webkit.org/changeset/260130> All reviewed patches have been landed. Closing bug and clearing flags on attachment 396532 [details].
Truitt Savell
Comment 27 2020-04-15 11:32:49 PDT
Remove expectations for this test in https://trac.webkit.org/changeset/260141/webkit
Note You need to log in before you can comment on or make changes to this bug.