ThreadActor deadlocks with several Frame targets in the same process
Categories
(DevTools :: General, defect, P3)
Tracking
(Fission Milestone:Future)
Fission Milestone | Future |
People
(Reporter: jdescottes, Unassigned)
References
(Blocks 1 open bug, )
Details
See initial investigation from Alex at https://bugzilla.mozilla.org/show_bug.cgi?id=1503499#c14
When we have several Frame targets living in the same process, attach to the thread actor of each Frame target can cause a deadlock.
This occurs frequently with the bild.de test page used for DAMP complicated tests but can in theory happen with any page having several frames in the same process. On the bild.de test page, this leads to never receiving the load event for the page after a reload (most likely because we don't properly resume the thread).
Fixing this root issue should help enable the following DAMP tests on Fission:
- inspector/complicated
- styleeditor/complicated
- netmonitor/complicated
The two other complicated tests (webconsole & jsdebugger) both use custom conditions to monitor the reload of the page, and are less likely to be impacted by this problem.
Comment 1•4 years ago
|
||
Bugbug thinks this bug should belong to this component, but please revert this change in case of error.
Updated•4 years ago
|
Comment 2•4 years ago
|
||
Tracking dt-fission-m3-mvp bugs for Fission MVP.
Updated•4 years ago
|
Comment 3•4 years ago
|
||
I'm wondering if bug 1682780 will make this bug less critical. If we stop pausing on attach, this may only become an issue when we start breaking.
And as bug 1573327, breakpoints are set by the watcher actor (instead of the frontend), which may also re-shuffle everything around this issue.
Reporter | ||
Comment 4•4 years ago
|
||
Setting as blocked on Bug 1682780 pre previous comment. Seems to fix DAMP tests running with Fission enabled locally.
Comment 5•4 years ago
•
|
||
I can reproduce the issue easily:
STR:
- Load http://janodvarko.cz/tests/fission/case9/index.html
- Open DevTools and select the Debugger panel
- Check that three sources are available in the Sources tree side panel -> BUG, no sources available
ER:
- index.js, iframe1.js, iframe2.js should be available
(you can see a log from each source in the Console panel)
Testing config:
- Current Nightly / Win 10
- All Fission prefs on (including
devtools.testing.enableServerWatcherSupport
) - Cache disabled (using the checkbox in the Network panel) - the behavior a lot better when the cache is not disabled
Honza
Updated•4 years ago
|
Comment 6•4 years ago
|
||
While bug 1682780 will fix immediate breakage on toolbox opening or page load,
the underlying design issue of having two thread actors against the same process still exists.
So we would probably have to refine the STR in order to include breakpoints in the remote process.
I'd expect things may still go wrong when hitting a breakpoints in remote process with more than one thread actor.
Comment 7•4 years ago
|
||
Moving some dt-fission-m3-mvp bugs from Fission MVP to M7 (blocking Beta experiment).
Comment 8•4 years ago
|
||
This seems to work for me using Honza's STR or maybe i'm missing something?
Honza, can you still see the issue?
Comment 9•4 years ago
•
|
||
I see an issue with a breakpoint set.
Adding modified STR
STR:
- Load http://janodvarko.cz/tests/fission/case9/index.html
- Open DevTools and select the Debugger panel
- Open
index.js
and set a breakpoint on line 3 - Refresh the page
AR:
Only the index.js
file is the Source tree. iframe1.js
, iframe2.js
are missing.
ER:
index.js
, iframe1.js
and iframe2.js
should be available
(you can see a log from each source in the Console panel)
Note:
I see it with all fission prefs both on and off
Comment 10•4 years ago
|
||
It would probably be worth investigating that once bug 1683139 and bug 1681698 are landed.
I don't think these patches will address this issue, but it may help finding a workaround.
Updated•4 years ago
|
Comment 11•4 years ago
|
||
Tracking dt-fission-m3-mvp test and infrastructure bugs for Fission M8 (blocking Release experiment).
Comment 12•4 years ago
|
||
Tracking DevTools Post-M8 bugs for Fission MVP milestone. They don't block the Fission Release channel experiment, but we would like them to be completed before we roll out Fission by default.
Updated•4 years ago
|
Description
•