Open Bug 1832077 Opened 1 year ago Updated 9 months ago

JS Tracing causes a tab crash

Categories

(DevTools :: Debugger, defect, P3)

defect

Tracking

(Not tracked)

People

(Reporter: nchevobbe, Unassigned)

References

(Blocks 1 open bug)

Details

I get a tab crash when tracing on https://nchevobbe.github.io/demo/console-test-app.html (happens even with a clean profile) :

[Parent 51566, IPC I/O Parent] WARNING: process 51575 exited on signal 11: file /Users/nchevobbe/Projects/mozilla-central/ipc/chromium/src/base/process_util_posix.cc:264
JavaScript error: resource://devtools/server/actors/resources/parent-process-document-event.js, line 90: TypeError: can't access property "innerWindowId", webProgress.browsingContext.currentWindowGlobal is null
JavaScript error: resource://devtools/shared/protocol/Front.js, line 106: Error: Connection closed, pending request to server0.conn0.workerGlobal8589934593/workerTarget1/tracer3, type startTracing failed

Request stack:
request@resource://devtools/shared/protocol/Front.js:300:14
generateRequestMethods/</frontProto[name]@resource://devtools/shared/protocol/Front/FrontClassWithSpec.js:47:19
startTracing/<@resource://devtools/client/debugger/src/client/firefox/commands.js:112:24

console.error: (new TypeError("can't access property \"delete\", mutableBreakableLines is undefined", "resource://devtools/client/debugger/src/reducers/sources.js", 292))
TypeError: can't access property "delete", mutableBreakableLines is undefined: removeSourcesAndActors@resource://devtools/client/debugger/src/reducers/sources.js:292:7
update@resource://devtools/client/debugger/src/reducers/sources.js:192:16
combination@resource://devtools/client/shared/vendor/redux.js:502:36
dispatch@resource://devtools/client/shared/vendor/redux.js:256:22
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:39: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:681:28
removeTarget/<@resource://devtools/client/debugger/src/actions/threads.js:38:13
thunk/</</<@resource://devtools/client/debugger/src/actions/utils/middleware/thunk.js:29:45
bindActionCreator/<@resource://devtools/client/shared/vendor/redux.js:520:12
onTargetDestroyed@resource://devtools/client/debugger/src/client/firefox.js:173:11
_emit@resource://devtools/shared/event-emitter.js:242:32
emit@resource://devtools/shared/event-emitter.js:186:18
emit@resource://devtools/shared/event-emitter.js:330:18
_onTargetDestroyed@resource://devtools/shared/commands/target/target-command.js:350:28
_destroyExistingTargetsOnTargetSwitching@resource://devtools/shared/commands/target/target-command.js:282:14
_onTargetAvailable@resource://devtools/shared/commands/target/target-command.js:208:14
_emit@resource://devtools/shared/event-emitter.js:242:32
emit@resource://devtools/shared/event-emitter.js:186:18
emit@resource://devtools/shared/event-emitter.js:330:18
_onTargetAvailable@resource://devtools/client/fronts/watcher.js:60:10
_emit@resource://devtools/shared/event-emitter.js:242:32
emit@resource://devtools/shared/event-emitter.js:186:18
emit@resource://devtools/shared/event-emitter.js:330:18
onPacket@resource://devtools/shared/protocol/Front.js:349:13
onPacket@resource://devtools/client/devtools-client.js:488:13
send/<@resource://devtools/shared/transport/local-transport.js:67:25
exports.makeInfallible/<@resource://devtools/shared/ThreadSafeDevToolsUtils.js:103:22
exports.makeInfallible/<@resource://devtools/shared/ThreadSafeDevToolsUtils.js:103:22

console.warn: "Action loadGeneratedSourceText had an exception:" (new Error("sourceContents failed: TypeError: can't access property \"threadFront\", target is undefined", "resource://devtools/client/debugger/src/actions/sources/loadSourceText.js", 34))
console.warn: "getSourceActorBreakableLines failed: TypeError: can't access property \"threadFront\", target is undefined"
console.warn: "Action setSymbols had an exception:" (new Error("Parser: source source-url-https://nchevobbe.github.io/demo/console-test-animation.js was not provided.", "resource://devtools/client/shared/worker-utils.js", 98))
Severity: -- → S3
Flags: needinfo?(poirot.alex)
Priority: -- → P3

Nicolas, could you tell me if you still reproduce a crash?
I couldn't, even after fixing bug 1848136 which prevented tracing worker threads correctly.

Blocks: js-tracer
Flags: needinfo?(poirot.alex) → needinfo?(nchevobbe)

I'm reproducing on an old Nightly (117.0a1 (2023-07-24)) , but not on latest central

Flags: needinfo?(nchevobbe)

Could it be that it doesn't reproduce on local builds, but only on official builds??
As I'm not sure anything significant landed recently in the tracer?

I got it to crash on latest Nightly, but it wasn't as straightforward.
Here's the crash report: https://crash-stats.mozilla.org/report/index/9f502d0a-323d-446f-a0dc-8fd870230810
looks related to worker

This is surprising to see ChromeUtils_Binding::importESModule being used in a DOM Worker thread... AFAIK, it shouldn't be exposed to workers.
It would have been interesting to know which particulart module was being loaded here.

May be it relates to this call:
https://searchfox.org/mozilla-central/source/devtools/server/tracer/tracer.jsm#42
which I'm getting rid in bug 1848136.

With latest patch from bug 1848136, I couldn't reproduce.

You need to log in before you can comment on or make changes to this bug.