Investigate intermittent debugger test failures after enabling windowless service workers
Categories
(DevTools :: Debugger, task, P3)
Tracking
(firefox78 fixed)
Tracking | Status | |
---|---|---|
firefox78 | --- | fixed |
People
(Reporter: jdescottes, Assigned: jdescottes)
References
Details
Attachments
(1 file)
Follow up to Bug 1603190.
We seem to have a spike in debugger test intermittents with logs such as:
devtools/client/debugger/test/mochitest/browser_dbg-asyncstacks.js | A promise chain failed to handle a rejection: Can not send request 'listServiceWorkerRegistrations' because front 'root' is already destroyed. - stack: generateRequestMethods/</frontProto[name]@resource://devtools/shared/protocol/Front/FrontClassWithSpec.js:29:15
1632695Intermittent devtools/client/debugger/test/mochitest/browser_dbg-asyncstacks.js | A promise chain failed to handle a rejection: can't access property "send", this.transport is null - stack: send@resource://devtools/server/devtools-server-connection.js:91:
1632752Intermittent devtools/client/debugger/test/mochitest/browser_dbg-asyncstacks.js | A promise chain failed to handle a rejection: Can not send request 'listServiceWorkerRegistrations' because front 'root' is already destroyed. - stack: generateRequestMethod
Copying my comment from Bug 1603190
(In reply to Julian Descottes [:jdescottes] from Bug 1603190 comment #17)
It's entirely possible that flipping this pref made more tests intermittent. By definition, when you listen for service worker updates, you need to update the list every time a process spawns or dies, which can be pretty frequent. And often the test will end while we are trying to fetch a worker update.
To make the debugger tests less intermittent, first we should try to make process updates less "random" by setting
await pushPref("dom.ipc.processPrelaunch.enabled", false);
before we run any test in the debugger test suite. If that's not enough, it might be a sign that the debugger tests are not waiting properly for some event/action. We could look at individual tests and see if using waitForRequestsToSettle can help. And if it's still not enough, depending on how many tests are impacted, we might ignore promise rejections in a few tests.
Assignee | ||
Comment 1•5 years ago
|
||
Depends on D73231
Comment 3•5 years ago
|
||
bugherder |
Description
•