RESOLVED FIXED 228569
storage/indexeddb/detached-iframe.html is flaky on some bots
https://bugs.webkit.org/show_bug.cgi?id=228569
Summary storage/indexeddb/detached-iframe.html is flaky on some bots
Chris Dumez
Reported 2021-07-28 15:24:14 PDT
storage/indexeddb/detached-iframe.html is flaky on some bots: TEXT DIFF: ALERT: original value +indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; + +indexedDB.deleteDatabase(dbname) +indexedDB.open(dbname) PASS successfullyParsed is true TEST COMPLETE
Attachments
Patch (2.28 KB, patch)
2021-07-28 15:26 PDT, Chris Dumez
no flags
Patch (2.74 KB, patch)
2021-07-29 08:42 PDT, Chris Dumez
no flags
Patch (2.69 KB, patch)
2021-07-29 09:14 PDT, Chris Dumez
no flags
Chris Dumez
Comment 1 2021-07-28 15:24:24 PDT
Chris Dumez
Comment 2 2021-07-28 15:26:22 PDT
Sihui Liu
Comment 3 2021-07-28 16:22:30 PDT
Comment on attachment 434472 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=434472&action=review > LayoutTests/storage/indexeddb/detached-iframe.html:7 > +jsTestIsAsync = true; Isn't it set in shared.js?
Chris Dumez
Comment 4 2021-07-28 16:24:53 PDT
Comment on attachment 434472 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=434472&action=review >> LayoutTests/storage/indexeddb/detached-iframe.html:7 >> +jsTestIsAsync = true; > > Isn't it set in shared.js? Hmm, it does. Yet, my change is causing the output to show up so there is a behavior change somehow..
Chris Dumez
Comment 5 2021-07-28 16:27:06 PDT
Comment on attachment 434472 [details] Patch Will investigate further.
Sihui Liu
Comment 6 2021-07-28 16:28:23 PDT
(In reply to Chris Dumez from comment #4) > Comment on attachment 434472 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=434472&action=review > > >> LayoutTests/storage/indexeddb/detached-iframe.html:7 > >> +jsTestIsAsync = true; > > > > Isn't it set in shared.js? > > Hmm, it does. Yet, my change is causing the output to show up so there is a > behavior change somehow.. Probably output from description()
Chris Dumez
Comment 7 2021-07-28 16:32:37 PDT
Comment on attachment 434472 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=434472&action=review > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:2 > +IndexedDB edge case with a detached iframe. description() would add this logging ... > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:4 > +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". ... and this one. > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:7 > +indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; description() does not explain this logging?
Sihui Liu
Comment 8 2021-07-28 22:01:11 PDT
(In reply to Chris Dumez from comment #7) > Comment on attachment 434472 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=434472&action=review > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:2 > > +IndexedDB edge case with a detached iframe. > > description() would add this logging ... > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:4 > > +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". > > ... and this one. > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:7 > > +indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; > > description() does not explain this logging? Right, I thought these lines should always be printed. Something wrong with the DOM nodes... testIframe.parentNode.remove(testIframe); should probably be: testIframe.parentNode.removeChild(testIframe);
Chris Dumez
Comment 9 2021-07-29 08:32:37 PDT
(In reply to Sihui Liu from comment #8) > (In reply to Chris Dumez from comment #7) > > Comment on attachment 434472 [details] > > Patch > > > > View in context: > > https://bugs.webkit.org/attachment.cgi?id=434472&action=review > > > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:2 > > > +IndexedDB edge case with a detached iframe. > > > > description() would add this logging ... > > > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:4 > > > +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". > > > > ... and this one. > > > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:7 > > > +indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; > > > > description() does not explain this logging? > > Right, I thought these lines should always be printed. Something wrong with > the DOM nodes... > > testIframe.parentNode.remove(testIframe); > should probably be: > testIframe.parentNode.removeChild(testIframe); It's equivalent, so is `testIframe.remove()`. It has no impact on the output of the test. Just adding the description() makes the output show (seemingly consistently) but I don't have an explanation why at the moment...
Chris Dumez
Comment 10 2021-07-29 08:42:03 PDT
Sihui Liu
Comment 11 2021-07-29 08:49:00 PDT
(In reply to Chris Dumez from comment #9) > (In reply to Sihui Liu from comment #8) > > (In reply to Chris Dumez from comment #7) > > > Comment on attachment 434472 [details] > > > Patch > > > > > > View in context: > > > https://bugs.webkit.org/attachment.cgi?id=434472&action=review > > > > > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:2 > > > > +IndexedDB edge case with a detached iframe. > > > > > > description() would add this logging ... > > > > > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:4 > > > > +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". > > > > > > ... and this one. > > > > > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:7 > > > > +indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; > > > > > > description() does not explain this logging? > > > > Right, I thought these lines should always be printed. Something wrong with > > the DOM nodes... > > > > testIframe.parentNode.remove(testIframe); > > should probably be: > > testIframe.parentNode.removeChild(testIframe); > > It's equivalent, so is `testIframe.remove()`. It has no impact on the output > of the test. Just adding the description() makes the output show (seemingly > consistently) but I don't have an explanation why at the moment... I checked with MutationObserver, testIframe.parentNode.remove(testIframe) removes document.body, testIframe.parentNode.removeChild(testIframe) removes iframe. Removing document.body makes the console element added in different places (function getOrCreate(id, tagName)@js-tests.js)...
Chris Dumez
Comment 12 2021-07-29 08:53:26 PDT
(In reply to Sihui Liu from comment #11) > (In reply to Chris Dumez from comment #9) > > (In reply to Sihui Liu from comment #8) > > > (In reply to Chris Dumez from comment #7) > > > > Comment on attachment 434472 [details] > > > > Patch > > > > > > > > View in context: > > > > https://bugs.webkit.org/attachment.cgi?id=434472&action=review > > > > > > > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:2 > > > > > +IndexedDB edge case with a detached iframe. > > > > > > > > description() would add this logging ... > > > > > > > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:4 > > > > > +On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". > > > > > > > > ... and this one. > > > > > > > > > LayoutTests/storage/indexeddb/detached-iframe-expected.txt:7 > > > > > +indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; > > > > > > > > description() does not explain this logging? > > > > > > Right, I thought these lines should always be printed. Something wrong with > > > the DOM nodes... > > > > > > testIframe.parentNode.remove(testIframe); > > > should probably be: > > > testIframe.parentNode.removeChild(testIframe); > > > > It's equivalent, so is `testIframe.remove()`. It has no impact on the output > > of the test. Just adding the description() makes the output show (seemingly > > consistently) but I don't have an explanation why at the moment... > > I checked with MutationObserver, testIframe.parentNode.remove(testIframe) > removes document.body, testIframe.parentNode.removeChild(testIframe) removes > iframe. Removing document.body makes the console element added in different > places (function getOrCreate(id, tagName)@js-tests.js)... Oh, you are right that testIframe.parentNode.remove(testIframe) seems very wrong. It removes the parent node instead of the frame, LOL :) I got confused because ParentNode.idl has append/prepend (but not remove). I'll test again but I believe fixing that didn't make the output appear though. For me, it was switching to js-test-pre.js/js-test-post.js (or calling description()) that seemed to do the trick.
Chris Dumez
Comment 13 2021-07-29 09:10:36 PDT
Comment on attachment 434523 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=434523&action=review > LayoutTests/storage/indexeddb/detached-iframe.html:8 > + document.getElementById('testIframe').remove(); Actually, this fix alone is sufficient to make the output show. I got confused because the test is marked as flaky internally. I'll revert the js-test-pre.js / js-test-post.js change.
Chris Dumez
Comment 14 2021-07-29 09:14:23 PDT
EWS
Comment 15 2021-07-29 09:55:56 PDT
Committed r280426 (240066@main): <https://commits.webkit.org/240066@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 434527 [details].
Chris Dumez
Comment 16 2021-07-29 10:02:34 PDT
*** Bug 207844 has been marked as a duplicate of this bug. ***
Chris Dumez
Comment 17 2021-07-29 10:05:01 PDT
Note You need to log in before you can comment on or make changes to this bug.