Closed Bug 904191 Opened 11 years ago Closed 5 years ago

Remote debugger can't load files after page refresh

Categories

(DevTools :: Debugger, defect, P2)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: bbenvie, Unassigned)

References

(Blocks 1 open bug)

Details

STR:

* debug a remote target
* open Debugger tab
* reload page
* click on any file that hasn't had its source loaded

It will never load ("Loading..."). If you've already loaded the file then it works, presumably because it's cached.

Interestingly, it seems like the list of files is not refreshed. When you reload the page on a locally debugged tab, you can see the list of files empty and then be refilled as the page loads. Remotely, the list of files doesn't get emptied.
Would like to see if there are console messages, but I am pretty sure this is because source actors live in the thread lifetime pool. This means that if you aren't really careful when refreshing, it is easy to keep hold of references to actors that have since been cleaned up.

I see two options moving forward:

1) Keep trying to hunt down when we hold onto old actor references (this is what we've been doing by default, with somewhat mediocre results it seems)

2) Create a new actor pool with a lifetime equal the length of time that the debugger is open. This way we would only ever create one source actor per source and wouldn't have to do the invalidate existing source actors, recreate new ones, and hope the front end doesn't have old references dance.

I'm a fan of the second option.
Not sure if this is a separate issue, but I also see issues locally as well, though it's intermittent / feels like a race somewhere.

I am using Nightly 26.0a1 (2013-08-12).

STR:

1. Go to http://mihaisucan.github.io/mozilla-work/test.html
2. Open the Debugger tab
3. You should see test.html and test.js in the file list, and their contents appears successfully
4. Set a breakpoint on line 3 of test.js
5. Fully reload the page (clearing caches) (Cmd-Shift-R on OS X)
6. The files reappear in the Debugger file list, file contents is shown, and you've hit the breakpoint on line 3
7. Fully reload the page (clearing caches) (Cmd-Shift-R on OS X)
8. The file list appears, but the file contents do not (you see "Loading..." forever)

Sometimes it takes more reloads to get stuck in this state.  You can see via the breadcrumb view that you've hit the breakpoint, but the file contents are not visible.
(In reply to Nick Fitzgerald [:fitzgen] from comment #1)
> Would like to see if there are console messages

There's one error, but it's just in debugger-view.js on line 285, in the promise failure handler for the `DebuggerView.editorSource` setter. The error passed to it is undefined.
On further investigation, the error coming back from the server is "noSuchActor".
I can't seem to reproduce this issue using the STR in comment 0 on this page.

Note that the thread actor persists during page refreshes and so does the thread-lifetime actor pool. IIRC you explicitly don't cache source actors to make sure we pick up any changes made by the developer in the most common workflow.
Priority: -- → P3
Priority: P3 → P2
The issue still reproduces for me every time I try (with MetroFX as the remote target).
Blocks: 914761
There has been no activity on this bug for almost a year. Can anyone still reproduce this?
Summary: For remote targets, after page refresh files can't be loaded → Remote debugger can't load files after page refresh
Product: Firefox → DevTools
Closing this as it is stale and likely no longer relevant. I'd be happy to re-open it if we have an up to date STR.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.