Closed Bug 1466711 Opened 6 years ago Closed 2 years ago

Profiler panel in WebIDE doesn't load after switching process/tabs

Categories

(DevTools :: Performance Tools (Profiler/Timeline), defect, P2)

defect

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: Harald, Unassigned)

References

Details

STR:
- Connect to device
- Select main process & performance tab
- Switch to tab and back to main process

AR: Profiler tab stays empty.

Collection of errors from browser console that might be related:

Error: Minified React error #188; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=188 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

onPacket threw an exception: Error: Server did not specify an actor, dropping packet: {"type":"networkEventUpdate","updateType":"responseContent","mimeType":"text/javascript; charset=UTF-8","contentSize":3294,"transferredSize":2048,"discardResponseBody":false,"from":null}
Stack: onPacket@resource://devtools/shared/base-loader.js -> resource://devtools/shared/client/debugger-client.js:851:9
_onJSONObjectReady/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/transport/transport.js:472:11
exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14
exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14
Line: 851, column: 9 ThreadSafeDevToolsUtils.js:88:5

onPacket threw an exception: Error: Server did not specify an actor, dropping packet: {"type":"networkEventUpdate","updateType":"responseContent","mimeType":"text/javascript; charset=UTF-8","contentSize":9004,"transferredSize":4306,"discardResponseBody":false,"from":null}
Stack: onPacket@resource://devtools/shared/base-loader.js -> resource://devtools/shared/client/debugger-client.js:851:9
_onJSONObjectReady/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/transport/transport.js:472:11
exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14
exports.makeInfallible/<@resource://devtools/shared/base-loader.js -> resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14
Line: 851, column: 9
Switching to Console works, switching back to Performance after that is still empty
Component: Gecko Profiler → Developer Tools: Performance Tools (Profiler/Timeline)
Product: Core → Firefox
I reproduce easily using just a local Firefox with WebIDE (start Firefox with `--start-debugger-server`, then connect to it with WebIDE as remote runtime).

The errors I get are:

from protocol.js:1375
Error: "Unexpected packet server2.conn1.perfActor24, {"value":false,"from":"server2.conn1.perfActor24"}"
onPacketresource://devtools/shared/protocol.js:1374:19onPacketresource://devtools/shared/client/debugger-client.js:860:7_onJSONObjectReadyresource://devtools/shared/transport/transport.js:472:11makeInfallibleresource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14makeInfallibleresource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14

from ThreadSafeDevToolsUtils.js:88
Handler function DebuggerTransport instance's this.hooks.onPacket threw an exception: Error: Unexpected packet server2.conn1.perfActor24, {"value":false,"from":"server2.conn1.perfActor24"}
Stack: onPacket@resource://devtools/shared/protocol.js:1374:19
onPacket@resource://devtools/shared/base-loader.js -> resource://devtools/shared/client/debugger-client.js:860:7
_onJSONObjectReady/<@resource://devtools/shared/transport/transport.js:472:11
exports.makeInfallible/<@resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14
exports.makeInfallible/<@resource://devtools/shared/ThreadSafeDevToolsUtils.js:109:14
Line: 1374, column: 19

Then the same errors again twice (first with "value: true" and second with "value: false").
(no React error, so I believe this was a red herring)
Actually the debugger has the same issue.

But all other panels (including the old performance panel) work with this STR.
Product: Firefox → DevTools
Hey Jason, because this happens to the debugger too, would you have the bandwidth to look at this more?
Flags: needinfo?(jlaster)
Priority: -- → P2
I'm  a bit confused :julienw, I'm not sure how this is related to the debugger, except that it also connects to the server in the same way.
Flags: needinfo?(jlaster)
Jason, this relates to the debugger because it shows the same behavior than the performance panel with the same STR. So likely the way it connects to the server is the issue here. I admit I don't know this much (yet ?)...
Flags: needinfo?(jlaster)
This issue is more related to remote debugging rather than debugger or a specific tool.
It sounds like a good question for the new about:debugging team.

I'm wondering if that could be related to this line:
  https://searchfox.org/mozilla-central/source/devtools/client/performance-new/panel.js#34
Yulia recently tried to introduce a new actor and trying to instanciate it like this,
without memoization, would lead to various such protocol.js exception.

In the case of WebIDE, when you open/close multiple toolboxes, you will always reuse the same `client` and so re-creating the front everytime the panel is opened may introduce issues if the previous one isn't correctly destroyed.
Flags: needinfo?(jlaster)

We don't use WebIDE anymore, and about:debugging seems to work fine these days, including when switching between targets.
Let's open a new bug if we see a similar problem with about:debugging.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.