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)
57.79 KB,
text/plain
|
Details | |
28.87 KB,
text/plain
|
Details | |
58 bytes,
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
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=64d0241361a0
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 |
https://hg.mozilla.org/mozilla-central/rev/53f5b5c289fb
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 50
Updated•8 years ago
|
tracking-fennec: ? → 49+
Comment 11•8 years ago
|
||
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 |
https://hg.mozilla.org/releases/mozilla-aurora/rev/c83de296c78d
Updated•3 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
•