Intermittent devtools/client/debugger/test/mochitest/browser_dbg-windowless-service-workers-reload.js | single tracking bug
Categories
(DevTools :: Debugger, defect, P3)
Tracking
(Not tracked)
People
(Reporter: jmaher, Unassigned)
References
Details
(Keywords: intermittent-failure, intermittent-testcase, leave-open, Whiteboard: [stockwell disabled])
Attachments
(4 files, 1 obsolete file)
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
Comment 83•2 years ago
|
||
Update
There have been 47 total failures within the last 7 days:
- 28 failures on Linux 18.04 x64 WebRender debug/ opt
- 16 failures on Linux 18.04 x64 WebRender Shippable opt
- 3 failures on Windows 11 x64 22H2 WebRender Shippable opt
Recent failure log: https://treeherder.mozilla.org/logviewer?job_id=437628583&repo=autoland&lineNumber=6688
[task 2023-11-24T22:37:31.247Z] 22:37:31 INFO - TEST-PASS | devtools/client/debugger/test/mochitest/browser_dbg-windowless-service-workers-reload.js | a new breakpoint was created -
[task 2023-11-24T22:37:31.248Z] 22:37:31 INFO - Invoking in tab: fetchFromWorker()
[task 2023-11-24T22:37:31.249Z] 22:37:31 INFO - Waiting for the debugger to pause
[task 2023-11-24T22:37:31.249Z] 22:37:31 INFO - Waiting for state change: paused
[task 2023-11-24T22:37:31.250Z] 22:37:31 INFO - Buffered messages finished
[task 2023-11-24T22:37:31.251Z] 22:37:31 INFO - TEST-UNEXPECTED-FAIL | devtools/client/debugger/test/mochitest/browser_dbg-windowless-service-workers-reload.js | Test timed out -
[task 2023-11-24T22:37:31.251Z] 22:37:31 INFO - Removing tab.
[task 2023-11-24T22:37:31.252Z] 22:37:31 INFO - Waiting for event: 'TabClose' on [object XULElement].
[task 2023-11-24T22:37:31.264Z] 22:37:31 INFO - Got event: 'TabClose' on [object XULElement].
[task 2023-11-24T22:37:31.282Z] 22:37:31 INFO - Tab removed and finished closing
[task 2023-11-24T22:37:31.288Z] 22:37:31 INFO - GECKO(2665) | JavaScript error: , line 0: NotFoundError: No such JSWindowActor 'DevToolsFrame'
[task 2023-11-24T22:37:31.294Z] 22:37:31 INFO - Console message: [JavaScript Error: "NotFoundError: No such JSWindowActor 'DevToolsFrame'"]
[task 2023-11-24T22:37:31.296Z] 22:37:31 INFO - TEST-PASS | devtools/client/debugger/test/mochitest/browser_dbg-windowless-service-workers-reload.js | The main process DevToolsServer has no pending connection when the test ends -
Hubert, can you help us assign this to someone?
Thank you.
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
Updated•2 years ago
|
Comment 89•2 years ago
|
||
Comment 90•2 years ago
|
||
Hi Natalia, Apologies for the delay to get to this.
Alex , Does this relate to the latest work around service workers?
this test seems to be failing for the non-fission scenario, so could we ignore the test for this?
Comment 91•2 years ago
|
||
Updated•2 years ago
|
Comment 92•2 years ago
|
||
| bugherder | ||
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
- removeTab doesn't wait for full toolbox destruction
- we weren't waiting for the ContentTask involved when calling fetchFromWorker to complete after resume
- we were reloading the page while the Service Worker was still being registered
Updated•1 year ago
|
Comment 111•1 year ago
|
||
Comment 112•1 year ago
|
||
| bugherder | ||
Comment 113•1 year ago
|
||
Backed out for causing dt failures @ browser_dbg-windowless-service-workers.js |
- Backout link
- Push with failures
- Failure Log
- Failure line:
TEST-UNEXPECTED-FAIL | devtools/client/debugger/test/mochitest/browser_dbg-windowless-service-workers.js | Found the service worker info -
Comment 114•1 year ago
|
||
Backout merged to central: https://hg.mozilla.org/mozilla-central/rev/080983ca7455
| Comment hidden (Intermittent Failures Robot) |
Comment 116•1 year ago
|
||
Comment 117•1 year ago
|
||
| bugherder | ||
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
Updated•1 year ago
|
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
Comment 128•4 months ago
|
||
The recent failures seem related to a leak:
[task 2026-04-09T05:21:22.925+00:00] 05:21:22 INFO - TEST-UNEXPECTED-FAIL | devtools/client/debugger/test/mochitest/browser_dbg-windowless-service-workers-reload.js | Shutdown - leaked window until shutdown [url = about:devtools-toolbox]
[task 2026-04-09T05:21:22.925+00:00] 05:21:22 INFO - FragmentOrElement (xhtml) button class='devtools-button command-bar-button debugger-settings-menu-button' (orphan) chrome://devtools/content/debugger/index.html [root, 1 unknown ref(s)] @ 0x1aa86713700
[task 2026-04-09T05:21:22.925+00:00] 05:21:22 INFO - Preserved wrapper JS HTMLButtonElement @ 0x21dd110ad498
[task 2026-04-09T05:21:22.925+00:00] 05:21:22 INFO - baseshape_global JS Window @ 0x35269a4d8348
[task 2026-04-09T05:21:22.925+00:00] 05:21:22 INFO - UnwrapDOMObject(obj) nsGlobalWindowInner # 38 inner chrome://devtools/content/debugger/index.html @ 0x1aa87890d00
[task 2026-04-09T05:21:22.925+00:00] 05:21:22 INFO - mTopInnerWindow nsGlobalWindowInner # 35 inner about:devtools-toolbox @ 0x1aafe0d8f00
[task 2026-04-09T05:21:22.926+00:00] 05:21:22 INFO - Not taking screenshot here: see the one that was previously logged
Comment 129•4 months ago
|
||
The spike only started at the beginning of April 2026, so very recent regression.
Comment 130•3 months ago
|
||
(In reply to Julian Descottes [:jdescottes] from comment #129)
The spike only started at the beginning of April 2026, so very recent regression.
It's failing only on standalone jobs: https://tests.firefox.dev/test.html?test=devtools%2Fclient%2Fdebugger%2Ftest%2Fmochitest%2Fbrowser_dbg-windowless-service-workers-reload.js
So it's not necessarily a recent regression, but more likely when we introduced the standalone jobs.
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
Comment 133•3 months ago
|
||
Failure screenshots all seem to share the same symptom: the title tooltip of the sources settings button remains displayed.
Maybe the toolbox it destroyed while the tooltip is shown and that's potentially what triggers the bug?
Comment 134•3 months ago
|
||
I tried setting the tooltip delay to 0, but interestingly that makes the issue a permafail: https://treeherder.mozilla.org/jobs?repo=try&selectedTaskRun=GK8tX8CMSLyfWSjtLsaV1Q.0&revision=6fe4d5fcf456813f4922778a74a44f258167e8d8
Now trying to increase the delay from 500ms to 10s: https://treeherder.mozilla.org/jobs?repo=try&landoInstance=lando-prod-2025&landoCommitID=37975
But as far as actually fixing this we probably need a way to make sure all title tooltips are properly destroyed when destroying a window. I wonder if this is something specific to the toolbox or if it can impact any title tooltip?
Comment 135•3 months ago
|
||
I was trying to see where the leak was coming from, and it might be related to https://searchfox.org/firefox-main/rev/a78cfde410d7bb58c143d46f3dea0af8ec0181f3/docshell/base/nsDocShellTreeOwner.cpp#171-178
// The node hovered over that fired the timer. This may turn into the node
// that triggered the tooltip, but only if the timer ever gets around to
// firing. This is a strong reference, because the tooltip content can be
// destroyed while we're waiting for the tooltip to pop up, and we need to
// detect that. It's set only when the tooltip timer is created and launched.
// The timer must either fire or be cancelled (or possibly released?), and we
// release this reference in each of those cases. So we don't leak.
nsCOMPtr<nsINode> mPossibleTooltipNode;
It seems that at least in case the window is programmatically destroyed while the tooltip is shown, we don't clear the reference?
Comment 136•3 months ago
|
||
| Comment hidden (Intermittent Failures Robot) |
Comment 138•3 months ago
•
|
||
FWIW, it's relatively easy to reproduce manually, even on macos.
With a debug build, add "ui.tooltip.delay_ms=0", right below https://searchfox.org/firefox-main/rev/f98aa512e7b7d557ec2d57dbf67b0c4285e9cd3a/devtools/client/debugger/test/mochitest/browser_qz.toml#19
"javascript.options.experimental.explicit_resource_management=true", # This pref has to be set before the process starts
Then run devtools/client/debugger/test/mochitest/browser_dbg-windowless-service-workers-reload.js in headful and move your mouse on top of the cog icon of the source tree of the debugger during the test (or make sure your mouse is positioned at the coordinates of the button when the test will start, both approaches work here)
Updated•3 months ago
|
Comment 139•3 months ago
|
||
Initially tried to fix the window leak from Bug 1767716 with this approach but it
did not help. Still keeping the patch in the stack in case it makes sense.
Comment 140•3 months ago
|
||
Updated•3 months ago
|
Comment 141•3 months ago
|
||
| bugherder | ||
| Comment hidden (Intermittent Failures Robot) |
| Comment hidden (Intermittent Failures Robot) |
Description
•