Closed
Bug 1510934
Opened 6 years ago
Closed 5 years ago
Intermittent dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | Appcache is enabled - "no" == "yes" - due to lost preference updates during async content process launch
Categories
(Core :: Preferences: Backend, defect, P1)
Core
Preferences: Backend
Tracking
()
RESOLVED
FIXED
mozilla66
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox64 | --- | unaffected |
firefox65 | --- | fixed |
firefox66 | --- | fixed |
People
(Reporter: intermittent-bug-filer, Assigned: jld)
References
Details
(Keywords: intermittent-failure, Whiteboard: [retriggered])
Attachments
(2 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-beta+
|
Details | Review |
Filed by: dluca [at] mozilla.com https://treeherder.mozilla.org/logviewer.html#?job_id=214547954&repo=autoland https://queue.taskcluster.net/v1/task/FZ76eTYeQw6ToqAOo7WDLQ/runs/0/artifacts/public/logs/live_backing.log [task 2018-11-29T06:21:52.615Z] 06:21:52 INFO - GECKO(7014) | MEMORY STAT vsizeMaxContiguous not supported in this build configuration. [task 2018-11-29T06:21:52.616Z] 06:21:52 INFO - GECKO(7014) | MEMORY STAT | vsize 621MB | residentFast 293MB | heapAllocated 105MB [task 2018-11-29T06:21:52.617Z] 06:21:52 INFO - TEST-OK | dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | took 4055ms [task 2018-11-29T06:21:52.653Z] 06:21:52 INFO - checking window state [task 2018-11-29T06:21:54.667Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7378 [task 2018-11-29T06:21:54.724Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7344 [task 2018-11-29T06:21:54.725Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7304 [task 2018-11-29T06:21:54.733Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7132 [task 2018-11-29T06:21:54.735Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7184 [task 2018-11-29T06:21:54.736Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7272 [task 2018-11-29T06:21:54.744Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7225 [task 2018-11-29T06:21:54.744Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7330 [task 2018-11-29T06:21:54.781Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7215 [task 2018-11-29T06:21:54.782Z] 06:21:54 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7109 [task 2018-11-29T06:21:55.127Z] 06:21:55 INFO - GECKO(7014) | Completed ShutdownLeaks collections in process 7014 [task 2018-11-29T06:21:55.128Z] 06:21:55 INFO - TEST-START | Shutdown [task 2018-11-29T06:21:55.129Z] 06:21:55 INFO - Browser Chrome Test Summary [task 2018-11-29T06:21:55.131Z] 06:21:55 INFO - Passed: 6 [task 2018-11-29T06:21:55.132Z] 06:21:55 INFO - Failed: 2 [task 2018-11-29T06:21:55.133Z] 06:21:55 INFO - Todo: 0 [task 2018-11-29T06:21:55.140Z] 06:21:55 INFO - Mode: e10s [task 2018-11-29T06:21:55.144Z] 06:21:55 INFO - *** End BrowserChrome Test Results *** [task 2018-11-29T06:21:55.627Z] 06:21:55 INFO - GECKO(7014) | 1543472515621 Marionette DEBUG Received observer notification xpcom-will-shutdown [task 2018-11-29T06:21:55.627Z] 06:21:55 INFO - GECKO(7014) | 1543472515621 Marionette INFO Stopped listening on port 2828 [task 2018-11-29T06:21:55.627Z] 06:21:55 INFO - GECKO(7014) | 1543472515621 Marionette DEBUG Remote service is inactive [task 2018-11-29T06:21:55.958Z] 06:21:55 INFO - TEST-INFO | Main app process: exit 0
Comment 1•6 years ago
|
||
[task 2018-11-29T06:21:52.508Z] 06:21:52 INFO - TEST-PASS | dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | Loaded good content - "good" == "good" - [task 2018-11-29T06:21:52.510Z] 06:21:52 INFO - Leaving test bound [task 2018-11-29T06:21:52.514Z] 06:21:52 INFO - Entering test bound test_pref_removes_api [task 2018-11-29T06:21:52.515Z] 06:21:52 INFO - Console message: [JavaScript Warning: "The Application Cache API (AppCache) is deprecated and will be removed at a future date. Please consider using ServiceWorker for offline support." {file: "about:blank" line: 0}] [task 2018-11-29T06:21:52.516Z] 06:21:52 INFO - Console message: [JavaScript Error: "Use of the Application Cache API (AppCache) for insecure connections will be removed in version 62." {file: "about:blank" line: 0}] [task 2018-11-29T06:21:52.516Z] 06:21:52 INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "http://example.com/browser/dom/tests/mochitest/ajax/offline/file_simpleManifest.html" line: 0}] [task 2018-11-29T06:21:52.518Z] 06:21:52 INFO - Console message: Offline cache doesn't need to update, URL=http://example.com/browser/dom/tests/mochitest/ajax/offline/file_simpleManifest.cacheManifest [task 2018-11-29T06:21:52.519Z] 06:21:52 INFO - Buffered messages finished [task 2018-11-29T06:21:52.520Z] 06:21:52 INFO - TEST-UNEXPECTED-FAIL | dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | Appcache is enabled - "no" == "yes" - [task 2018-11-29T06:21:52.521Z] 06:21:52 INFO - Stack trace: [task 2018-11-29T06:21:52.522Z] 06:21:52 INFO - resource://testing-common/content-task.js line 59 > eval:null:5 [task 2018-11-29T06:21:52.525Z] 06:21:52 INFO - Not taking screenshot here: see the one that was previously logged [task 2018-11-29T06:21:52.525Z] 06:21:52 INFO - TEST-UNEXPECTED-FAIL | dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | OfflineResourceList is enabled - "no" == "yes" - [task 2018-11-29T06:21:52.526Z] 06:21:52 INFO - Stack trace: [task 2018-11-29T06:21:52.526Z] 06:21:52 INFO - resource://testing-common/content-task.js line 59 > eval:null:6 [task 2018-11-29T06:21:52.527Z] 06:21:52 INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "http://example.com/browser/dom/tests/mochitest/ajax/offline/file_simpleManifest.html" line: 0}] [task 2018-11-29T06:21:52.528Z] 06:21:52 INFO - TEST-PASS | dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | Appcache is disabled - "no" == "no" -
Updated•6 years ago
|
Component: Networking: Cache → Security
Product: Core → Firefox
Comment 2•6 years ago
|
||
Did some retriggers and backfills and it seems that the issue started from this push: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=f4a1b8b8be72ecdf5db4f49e283cacad4c61731a&revision=41195aed7eef4e1575d37e806bc53876043ad376&selectedJob=214817114 https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=f4a1b8b8be72ecdf5db4f49e283cacad4c61731a&tochange=41195aed7eef4e1575d37e806bc53876043ad376&fromchange=85b68ee430dc5b8ec21663ecfd00e4b14e80b944 :jld Could you please take a look here?
Flags: needinfo?(jld)
Updated•6 years ago
|
Whiteboard: [retriggered]
Assignee | ||
Comment 3•6 years ago
|
||
I think I know what's going on here: that test fails because the (temporary) setting of browser.cache.offline.insecure.enable isn't picked up by the content process, so AppCache isn't available in the test page (which would normally be an insecure context and not eligible to use AppCache, if I understand correctly). Getting prefs into content processes is a little weird: some of them need to be available before IPC is started, so there's code that runs before launch[1] to supply a snapshot; later, updates are streamed[2] over IPC once the pref observer is registered[3]. Before async launch, the main thread was blocked for that entire time; with async launch, it can do other things, which includes possibly setting prefs, which wouldn't be picked up. This should be relatively easy to fix; the harder part will be testing it. [1] https://searchfox.org/mozilla-central/rev/8f0db72fb6e35414fb9a6fc88af19c69f332425f/dom/ipc/ContentParent.cpp#2241 [2] https://searchfox.org/mozilla-central/rev/8f0db72fb6e35414fb9a6fc88af19c69f332425f/dom/ipc/ContentParent.cpp#3251 [3] https://searchfox.org/mozilla-central/rev/8f0db72fb6e35414fb9a6fc88af19c69f332425f/dom/ipc/ContentParent.cpp#1378
Assignee: nobody → jld
Blocks: 1446161
Component: Security → Preferences: Backend
Flags: needinfo?(jld)
Priority: P5 → P1
Product: Firefox → Core
Summary: Intermittent dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | Appcache is enabled - "no" == "yes" - → Lost preference updates during async content process launch | Intermittent dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | Appcache is enabled - "no" == "yes" -
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Updated•5 years ago
|
Summary: Lost preference updates during async content process launch | Intermittent dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | Appcache is enabled - "no" == "yes" - → Intermittent dom/tests/mochitest/ajax/offline/browser_disableAppcache.js | Appcache is enabled - "no" == "yes" - due to lost preference updates during async content process launch
Assignee | ||
Comment 8•5 years ago
|
||
We need content processes that are created but not finished launching (not "alive" yet) to be treated differently from ones that have exited (no longer "alive"), so the boolean mIsAlive is expanded to a 3-state enumeration, which could be expanded more in the future if needed. (This is similar to GeckoChildProcessHost::mProcessState, but it's synchronized with the rest of the ContentParent's state, which can lag the GeckoChildProcessHost state due to runnable dispatch.) This patch also removes mIsAvailable/IsAvailable/MarkAsTroubled, which are unused as of bug 1459212.
Assignee | ||
Comment 9•5 years ago
|
||
Some prefs need to be available before IPC is started, so we serialize a snapshot when we start launching the process, and then stream further changes over IPC messages. However, async launch introduces a window between the snapshot and when the parent can start sending messages, during which other code can run on the main thread and change prefs. In order to not lose those updates, they're queued and sent when the launch is complete. Depends on D14089
Comment 11•5 years ago
|
||
Pushed by jedavis@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c2e55bc9206b Change ContentParent's alive/dead tracking to launching/alive/dead. r=mrbkap https://hg.mozilla.org/integration/autoland/rev/74bfa63e922c Ensure that pref changes during content process launch are delivered to the process. r=njn
Assignee | ||
Comment 12•5 years ago
|
||
I'll request uplift once this seems stable on Nightly.
Flags: needinfo?(jld)
Assignee | ||
Updated•5 years ago
|
status-firefox64:
--- → unaffected
status-firefox65:
--- → affected
status-firefox66:
--- → affected
status-firefox-esr60:
--- → unaffected
Flags: needinfo?(jld)
Assignee | ||
Updated•5 years ago
|
Flags: needinfo?(jld)
Comment 13•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/c2e55bc9206b https://hg.mozilla.org/mozilla-central/rev/74bfa63e922c
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla66
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 15•5 years ago
|
||
Comment on attachment 9030294 [details] Bug 1510934 - Ensure that pref changes during content process launch are delivered to the process. [Beta/Release Uplift Approval Request] Feature/Bug causing the regression: Bug 1446161 User impact if declined: Prefs changes might be applied inconsistently, which might include internal uses of prefs. Is this code covered by automated tests?: Yes Has the fix been verified in Nightly?: Yes Needs manual test from QE?: No If yes, steps to reproduce: List of other uplifts needed: None Risk to taking this patch: Low Why is the change risky/not risky? (and alternatives if risky): There is a little refactoring and rearranging and dead code removal involved, but this has been stable for a few days on Nightly. The functional change makes a difference only in the case that's broken without these patches. (This comment applies to both patches on this bug; I can also flag the other one for approval if needed.) String changes made/needed: None.
Flags: needinfo?(jld)
Attachment #9030294 -
Flags: approval-mozilla-beta?
Comment 16•5 years ago
|
||
Comment on attachment 9030294 [details] Bug 1510934 - Ensure that pref changes during content process launch are delivered to the process. [Triage Comment] Fixes inconsistent application of pref changes. Approved for 65.0b6.
Attachment #9030294 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 17•5 years ago
|
||
bugherder uplift |
https://hg.mozilla.org/releases/mozilla-beta/rev/ad653a697179 https://hg.mozilla.org/releases/mozilla-beta/rev/097f70517f66
You need to log in
before you can comment on or make changes to this bug.
Description
•