Closed
Bug 1279273
Opened 8 years ago
Closed 8 years ago
Main thread waiting for session parsing to finish isn't released after parsing has terminated
Categories
(Firefox for Android Graveyard :: General, defect)
Tracking
(firefox47 unaffected, firefox48 unaffected, firefox49 fixed, fennec49+, firefox50 fixed)
RESOLVED
FIXED
Firefox 50
Tracking | Status | |
---|---|---|
firefox47 | --- | unaffected |
firefox48 | --- | unaffected |
firefox49 | --- | fixed |
fennec | 49+ | --- |
firefox50 | --- | fixed |
People
(Reporter: nalexander, Assigned: JanH)
References
Details
Attachments
(3 files)
(deleted),
text/plain
|
Details | |
(deleted),
text/plain
|
Details | |
(deleted),
text/x-review-board-request
|
sebastian
:
review+
lizzard
:
approval-mozilla-aurora+
|
Details |
I am unable to start Nightly for some time (weeks) and have accepted perhaps half a dozen updates in this time. Starting Nightly shows a white screen with no UI before the system prompts to kill the App.
I finally attached my device and grabbed two logcats, which I will attach.
Reporter | ||
Comment 1•8 years ago
|
||
Reporter | ||
Comment 2•8 years ago
|
||
Reporter | ||
Comment 3•8 years ago
|
||
Further investigation reveals this to be a catastrophic failure during session restore. I'm not comfortable posting my sessionstore.js publicly, but I've emailed it to Sebastian and JanH.
Updated•8 years ago
|
tracking-fennec: --- → ?
Assignee | ||
Comment 4•8 years ago
|
||
What happens is that if the main thread arrives here (https://dxr.mozilla.org/mozilla-central/rev/b6f7d0eb61b1878d3d906bd231edf225463ece3f/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java#1539) before the background thread has finished parsing the session data, it will never be released again even though the background thread is calling notifyAll() (https://dxr.mozilla.org/mozilla-central/rev/b6f7d0eb61b1878d3d906bd231edf225463ece3f/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java#1304).
The problem is that the session data parsing is running from within a Runnable, so the "this" there is not the same "this" as on the main thread, so notifyAll() naturally won't work.
Assignee: nobody → jh+bugzilla
status-firefox47:
--- → unaffected
status-firefox48:
--- → unaffected
status-firefox49:
--- → affected
status-firefox50:
--- → affected
Summary: Timeout executing service: ServiceRecord{... ... org.mozilla.fennec/org.mozilla.gecko.dlc.DownloadContentService} → Main thread waiting for session parsing to finish isn't released after parsing has terminated
Assignee | ||
Updated•8 years ago
|
OS: Unspecified → Android
Hardware: Unspecified → All
Version: unspecified → 49 Branch
Assignee | ||
Comment 5•8 years ago
|
||
If the main thread has to wait for the session data parsing to finish - which is more likely when you've got many tabs open, meaning a large sessionstore.js file - it does so on "this", i.e. GeckoApp.
The session data parsing itself is done from within a Runnable, so we need to qualify "this" there if we want it to refer to GeckoApp itself, so we can successfully release any waiting threads through notifyAll().
Review commit: https://reviewboard.mozilla.org/r/59094/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/59094/
Attachment #8762403 -
Flags: review?(s.kaspari)
Updated•8 years ago
|
Attachment #8762403 -
Flags: review?(s.kaspari) → review+
Comment 6•8 years ago
|
||
Comment on attachment 8762403 [details]
Bug 1279273 - Use correct synchronization object for session data parsing.
https://reviewboard.mozilla.org/r/59094/#review56230
Ah, nice!
Assignee | ||
Comment 7•8 years ago
|
||
Keywords: checkin-needed
Assignee | ||
Comment 8•8 years ago
|
||
Comment on attachment 8762403 [details]
Bug 1279273 - Use correct synchronization object for session data parsing.
Approval Request Comment
[Feature/regressing bug #]: Mobile session restoring, bug 905223
[User impact if declined]: Firefox might hang during startup, especially for users with lots of open tabs.
[Describe test coverage new/current, TreeHerder]: manual
[Risks and why]: Low, this just ensures that waiting and notifying threads are actually using the same synchronization object.
[String/UUID change made/needed]: none
Attachment #8762403 -
Flags: approval-mozilla-aurora?
Pushed by cbook@mozilla.com:
https://hg.mozilla.org/integration/fx-team/rev/53f5b5c289fb
Use correct synchronization object for session data parsing. r=sebastian
Keywords: checkin-needed
Comment 10•8 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 50
Updated•8 years ago
|
tracking-fennec: ? → 49+
Comment on attachment 8762403 [details]
Bug 1279273 - Use correct synchronization object for session data parsing.
Recent regression in session store, we definitely want to fix this on aurora 49.
Attachment #8762403 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Comment 12•8 years ago
|
||
bugherder uplift |
Updated•4 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•