Closed Bug 1605046 Opened 4 years ago Closed 4 years ago

devtools/client/debugger/test/mochitest/browser_dbg-browser-content-toolbox.js fails with devtools.browsertoolbox.fission set to true

Categories

(DevTools :: Debugger, defect)

defect
Not set
normal

Tracking

(Fission Milestone:M6, firefox73 fixed)

RESOLVED FIXED
Firefox 73
Fission Milestone M6
Tracking Status
firefox73 --- fixed

People

(Reporter: ochameau, Assigned: ochameau)

References

Details

Attachments

(1 file)

It seems to be easier to reproduce on a debug build.
Here is an example of failure on try:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=281734357&repo=try&lineNumber=4495

An exception happens during toolbox destroy and is about duplicated sources.
As if we were getting a new-source while we are fetching a new content process target and the reported new source is already registered in the store.

 1:12.92 INFO Toolbox is destroyed
 1:12.92 FAIL A promise chain failed to handle a rejection: Resource "server0.conn8.content-process2/source79" already exists, cannot insert - stack: insertResources@resource://devtools/client/debugger/src/utils/resource/core.js:42:13
update@resource://devtools/client/debugger/src/reducers/source-actors.js:33:47
combination@resource://devtools/client/shared/vendor/redux.js:630:36
dispatch@resource://devtools/client/shared/vendor/redux.js:408:22
log/</<@resource://devtools/client/debugger/src/actions/utils/middleware/log.js:114:9
waitUntilService/</<@resource://devtools/client/debugger/src/actions/utils/middleware/wait-service.js:71:24
promiseMiddleware/</<@resource://devtools/client/debugger/src/actions/utils/middleware/promise.js:46:14
context/</<@resource://devtools/client/debugger/src/actions/utils/middleware/context.js:35:12
thunk/</</<@resource://devtools/client/debugger/src/actions/utils/middleware/thunk.js:29:100
dispatch@resource://devtools/client/shared/vendor/redux.js:755:18
insertSourceActors/<@resource://devtools/client/debugger/src/actions/source-actors.js:26:13
thunk/</</<@resource://devtools/client/debugger/src/actions/utils/middleware/thunk.js:29:45
dispatch@resource://devtools/client/shared/vendor/redux.js:755:18
newGeneratedSources/<@resource://devtools/client/debugger/src/actions/sources/newSources.js:363:13
thunk/</</<@resource://devtools/client/debugger/src/actions/utils/middleware/thunk.js:29:45
dispatch@resource://devtools/client/shared/vendor/redux.js:755:18
newQueuedSources/<@resource://devtools/client/debugger/src/actions/sources/newSources.js:234:13
thunk/</</<@resource://devtools/client/debugger/src/actions/utils/middleware/thunk.js:29:45
bindActionCreator/<@resource://devtools/client/shared/vendor/redux.js:644:12
dispatchNewSources@resource://devtools/client/debugger/src/utils/source-queue.js:20:23
invokeFunc@resource://devtools/client/shared/vendor/lodash.js:10333:23
trailingEdge@resource://devtools/client/shared/vendor/lodash.js:10382:18
timerExpired@resource://devtools/client/shared/vendor/lodash.js:10370:18
setTimeout handler*timerExpired@resource://devtools/client/shared/vendor/lodash.js:10373:19
setTimeout handler*timerExpired@resource://devtools/client/shared/vendor/lodash.js:10373:19
setTimeout handler*leadingEdge@resource://devtools/client/shared/vendor/lodash.js:10341:19
debounced@resource://devtools/client/shared/vendor/lodash.js:10410:20
queue@resource://devtools/client/debugger/src/utils/source-queue.js:31:5
newSource@resource://devtools/client/debugger/src/client/firefox/events.js:112:24
emit@resource://devtools/shared/event-emitter.js:195:24
emit@resource://devtools/shared/event-emitter.js:276:18
onPacket@resource://devtools/shared/protocol/Front.js:252:13
onPacket@resource://devtools/shared/client/debugger-client.js:496:13
send/<@resource://devtools/shared/transport/local-transport.js:70:25
exports.makeInfallible/<@resource://devtools/shared/ThreadSafeDevToolsUtils.js:111:22
DevToolsUtils.executeSoon*exports.executeSoon@resource://devtools/shared/DevToolsUtils.js:62:21
send@resource://devtools/shared/transport/local-transport.js:58:21
send@resource://devtools/server/debugger-server-connection.js:91:20
receiveMessage@resource://devtools/shared/transport/child-transport.js:66:16
MessageListener.receiveMessage*_addListener@resource://devtools/shared/transport/child-transport.js:40:14
ready@resource://devtools/shared/transport/child-transport.js:57:10
listener@resource://devtools/server/connectors/content-process-connector.js:43:22
MessageListener.receiveMessage*connectToContentProcess/<@resource://devtools/server/connectors/content-process-connector.js:32:8
connectToContentProcess@resource://devtools/server/connectors/content-process-connector.js:28:10
_childProcessConnect@resource://devtools/server/actors/descriptors/process.js:95:35
getTarget@resource://devtools/server/actors/descriptors/process.js:129:17
handler@resource://devtools/shared/protocol/Actor.js:154:37
onPacket@resource://devtools/server/debugger-server-connection.js:380:58
send/<@resource://devtools/shared/transport/local-transport.js:70:25
exports.makeInfallible/<@resource://devtools/shared/ThreadSafeDevToolsUtils.js:111:22
DevToolsUtils.executeSoon*exports.executeSoon@resource://devtools/shared/DevToolsUtils.js:62:21
send@resource://devtools/shared/transport/local-transport.js:58:21
send@resource://devtools/shared/protocol/Front.js:198:30
request@resource://devtools/shared/protocol/Front.js:216:10
generateRequestMethods/</frontProto[name]@resource://devtools/shared/protocol/Front/FrontClassWithSpec.js:49:19
getTarget/this._targetFrontPromise<@resource://devtools/shared/fronts/descriptors/process.js:74:40
getTarget@resource://devtools/shared/fronts/descriptors/process.js:91:7
getAllProcessTargets/<@resource://devtools/client/debugger/src/client/firefox/targets.js:142:104
getAllProcessTargets@resource://devtools/client/debugger/src/client/firefox/targets.js:142:75
async*listProcessTargets@resource://devtools/client/debugger/src/client/firefox/targets.js:169:10
updateTargets@resource://devtools/client/debugger/src/client/firefox/targets.js:174:27
async*fetchThreads@resource://devtools/client/debugger/src/client/firefox/commands.js:454:36
updateThreads/<@resource://devtools/client/debugger/src/actions/threads.js:25:34
thunk/</</<@resource://devtools/client/debugger/src/actions/utils/middleware/thunk.js:29:45
dispatch@resource://devtools/client/shared/vendor/redux.js:755:18
connect/<@resource://devtools/client/debugger/src/actions/navigation.js:62:11
thunk/</</<@resource://devtools/client/debugger/src/actions/utils/middleware/thunk.js:29:45
bindActionCreator/<@resource://devtools/client/shared/vendor/redux.js:644:12
onConnect@resource://devtools/client/debugger/src/client/firefox.js:68:17
async*onConnect@resource://devtools/client/debugger/src/client/index.js:84:28
async*bootstrap@resource://devtools/client/debugger/src/main.js:28:31
open@resource://devtools/client/debugger/panel.js:45:38
onLoad@resource://devtools/client/framework/toolbox.js:2455:27
Rejection date: Thu Dec 19 2019 01:33:14 GMT-0800 (Pacific Standard Time) - false == true - JS frame :: resource://testing-common/PromiseTestUtils.jsm :: assertNoUncaughtRejections :: line 265
Stack trace:
resource://testing-common/PromiseTestUtils.jsm:assertNoUncaughtRejections:265
chrome://mochikit/content/browser-test.js:Tester_execTest/<:1093
chrome://mochikit/content/browser-test.js:Tester_execTest:1097
chrome://mochikit/content/browser-test.js:nextTest/<:919
chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:808

It looks like the Browser Content Toolbox iterates over all processes targets when the pref is turned on because of this check:
https://searchfox.org/mozilla-central/rev/6305f6935f496b3a302c7afcc579399a4217729c/devtools/client/debugger/src/client/firefox/events.js#43-45

function attachAllTargets(currentTarget: Target) {
  return prefs.fission && currentTarget.chrome && !currentTarget.isAddon;
}
Assignee: nobody → poirot.alex
Pushed by apoirot@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3cff9f85c556
Ensure that only the Browser Toolbox iterate over process targets in the debugger. r=jdescottes

Tracking DevTools tests for Fission Nightly (M6)

Fission Milestone: --- → M6
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 73
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: