Intermittent dom/indexedDB/test/browser_private_idb.js | Uncaught exception -
Categories
(Core :: Storage: IndexedDB, defect, P5)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr68 | --- | unaffected |
| firefox-esr78 | --- | unaffected |
| firefox80 | --- | unaffected |
| firefox81 | --- | unaffected |
| firefox82 | --- | fixed |
People
(Reporter: intermittent-bug-filer, Assigned: rpl)
References
(Regression)
Details
(Keywords: intermittent-failure, regression)
Attachments
(1 file)
Filed by: nbeleuzu [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=314330119&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/dQBteIPqSC-gxGIpbwoQLA/runs/0/artifacts/public/logs/live_backing.log
[task 2020-08-28T23:00:34.303Z] 23:00:34 INFO - TEST-PASS | dom/indexedDB/test/browser_private_idb.js | IndexedDB works in a non-private-browsing SharedWorker. -
[task 2020-08-28T23:00:34.303Z] 23:00:34 INFO - Console message: [JavaScript Error: "Security Error: Content at http://example.com/browser/dom/indexedDB/test/page_private_idb.html may not load data from blob:http://example.com/edcee31c-b972-4e23-9aae-cbe16ab9aa39."]
[task 2020-08-28T23:00:34.303Z] 23:00:34 INFO - Buffered messages finished
[task 2020-08-28T23:00:34.304Z] 23:00:34 INFO - TEST-UNEXPECTED-FAIL | dom/indexedDB/test/browser_private_idb.js | Uncaught exception -
[task 2020-08-28T23:00:34.305Z] 23:00:34 INFO - Leaving test bound
[task 2020-08-28T23:00:34.306Z] 23:00:34 INFO - Console message: [JavaScript Error: "uncaught exception: Object"]
[task 2020-08-28T23:00:34.306Z] 23:00:34 INFO - GECKO(6268) | MEMORY STAT | vsize 20975138MB | residentFast 1188MB
[task 2020-08-28T23:00:34.307Z] 23:00:34 INFO - TEST-OK | dom/indexedDB/test/browser_private_idb.js | took 2865ms
[task 2020-08-28T23:00:34.307Z] 23:00:34 INFO - checking window state
[task 2020-08-28T23:00:34.313Z] 23:00:34 INFO - Not taking screenshot here: see the one that was previously logged
[task 2020-08-28T23:00:34.314Z] 23:00:34 INFO - TEST-UNEXPECTED-FAIL | dom/indexedDB/test/browser_private_idb.js | Found an unexpected browser window at the end of test run -
[task 2020-08-28T23:00:34.316Z] 23:00:34 INFO - Not taking screenshot here: see the one that was previously logged
[task 2020-08-28T23:00:34.317Z] 23:00:34 INFO - TEST-UNEXPECTED-FAIL | dom/indexedDB/test/browser_private_idb.js | Found an unexpected browser window at the end of test run -
[task 2020-08-28T23:00:34.317Z] 23:00:34 INFO - GECKO(6268) | must wait for focus
| Comment hidden (Intermittent Failures Robot) |
Comment 2•5 years ago
|
||
Bisection indicates it's from bug 1568597: https://treeherder.mozilla.org/#/jobs?repo=autoland&fromchange=1d7a63a52abef2ce91a7c61128bb3393b01694a2&searchStr=linux%2Casan%2Cbrowser-chrome&selectedTaskRun=TxZHksGEQFWQKK5m0p1Rdg.0&tochange=4ee63a7a01c558ab33cbe80885cf966630e27dc9
Updated•5 years ago
|
Comment 3•5 years ago
|
||
Set release status flags based on info from the regressing bug 1568597
| Assignee | ||
Comment 4•5 years ago
|
||
(In reply to Sebastian Hengst [:aryx] (needinfo on intermittent or backout) from comment #2)
Bisection indicates it's from bug 1568597: https://treeherder.mozilla.org/#/jobs?repo=autoland&fromchange=1d7a63a52abef2ce91a7c61128bb3393b01694a2&searchStr=linux%2Casan%2Cbrowser-chrome&selectedTaskRun=TxZHksGEQFWQKK5m0p1Rdg.0&tochange=4ee63a7a01c558ab33cbe80885cf966630e27dc9
I've not been able to reproduce this failure locally yet, but I looks into what the test is doing and spent some time thinking about what may be happening and I think that I may see what could be triggering that intermittent failure:
-
The error from the linked logs that I think is actually related to the reason behind the failure is the following one (logged here):
"Security Error: Content at http://example.com/browser/dom/indexedDB/test/page_private_idb.html may not load data from blob:http://example.com/edcee31c-b972-4e23-9aae-cbe16ab9aa39." -
That error is expected be logged if the blob url that we are using to define the worker is not being recognized as valid, as it would have been revoked or never existed (e.g. we can trigger the same error consistently if we call
content.URL.revokeObjectURLon the blob url right before we callworker = new content.SharedWorker(url);to create the SharedWorker, which is obvious but it confirms that the error and the test failure would be expected in that case) -
I'm not sure yet why this may have become a more common intermittent failure due to the changes in bug 1568597 while fission is not enabled, but:
- for the service workers, in
RemoteWorkerManager::SelectTargetActorForServiceWorkerand inRemoteWorkerManager::LaunchNewContentProcesswe are explicitly transmitting permissions and blob urls remote worker principal info right after selecting a target RemoteWorkerService actor and before spawning the remote worker in that child process - for shared workers, we are not doing that, neither in
RemoteWorkerManager::SelectTargetActorForSharedWorkerorRemoteWorkerManager::LaunchNewContentProcess, and so I guess that there are chances that the blob urls aren't going to be known yet to that child process when we are going to spawn the remote worker, and that would trigger the intermittent failure
- for the service workers, in
Andrew, does the analysis described above sound reasonable to you?
I'll give it a couple more tries to reproduce this failure (and/or underlying issue) locally, if I'm unable to trigger it locally I may just try to make sure I can trigger it consistently enough on a try push and then I'll try it again with some additional changes applied to RemoteWorkerManager to fix the issue described above and double-check that it is going to fix the failure as I would expect.
| Assignee | ||
Comment 5•5 years ago
|
||
I pushed to try a draft patch which applied the minimum amount of changes needed to fix the issue described in comment 4 and the push to try seems to confirm that the test does then pass consistently (at least it did for 6 times in a row):
I'm going to attach to this issue a patch based on the changes in that push to try (+ some additional ones to merge the two SelectTargetForActorFor... methods into a single one shared by both, because those two methods are now going to be basically the same, minus the process-affinity selection that we are only doing for the Shared workers).
| Assignee | ||
Comment 6•5 years ago
|
||
Updated•5 years ago
|
| Assignee | ||
Comment 7•5 years ago
|
||
clearing needinfo assigned to :asuth because he did already reply to it as part of the review comments on phabricator.
Comment 9•5 years ago
|
||
| bugherder | ||
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
Description
•