Issue metadata
Sign in to add a comment
|
All VR tests failing due to navigation hanging |
||||||||||||||||||||||||||||
Issue descriptionIt looks like all VR tests on Daydream-ready devices have started failing due to navigation failing on startup, e.g. java.lang.AssertionError: Page did not load. Tab information at time of failure -- expected url: 'null', actual URL: 'about:blank', load progress: 10, is loading: true, web contents init: true, web contents loading: true Since this made it past the CQ, I assume that this is at least somewhat tied to either OS version or hardware, as otherwise the Cardboard VR tests on M should have caught this.
,
Jan 9
Bisect points to https://chromium-review.googlesource.com/c/chromium/src/+/1399457 as the culprit (??????). Reverting it. This does appear to be an O-specific issue, as it's not occurring on the same devices with N.
,
Jan 9
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/338cc933e27c8c67e0df5193a1a885179f72ae75 commit 338cc933e27c8c67e0df5193a1a885179f72ae75 Author: Brian Sheedy <bsheedy@chromium.org> Date: Wed Jan 09 22:52:39 2019 Revert "[Dark] Add build flag and experiment flag" This reverts commit 8ef8c364dc0648b4905c4f9cfdf053e4279a47fb. Reason for revert: Cause of crbug.com/920401 Original change's description: > [Dark] Add build flag and experiment flag > > This patch adds a build flag and an experiment flag for the dark mode > experiment. It will exclude the night- resources in the build for now. > > Bug: 919684 > Change-Id: I16f7dc0b076268863f6ec537d4ee41af124366df > Reviewed-on: https://chromium-review.googlesource.com/c/1399457 > Reviewed-by: Elly Fong-Jones <ellyjones@chromium.org> > Reviewed-by: Theresa <twellington@chromium.org> > Commit-Queue: Becky Zhou <huayinz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#621172} TBR=ellyjones@chromium.org,twellington@chromium.org,huayinz@chromium.org Change-Id: I622fee8c24bf12771a8353d18970a5a77021999b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 919684, 920401 Reviewed-on: https://chromium-review.googlesource.com/c/1403986 Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org> Cr-Commit-Position: refs/heads/master@{#621349} [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/android/BUILD.gn [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/android/java/res/values-v17/styles.xml [delete] https://crrev.com/1b878fc95604f9018ea8f16c56571d7033a05cd9/chrome/android/java/res_night/values-night/colors.xml [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/browser/about_flags.cc [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/browser/android/chrome_feature_list.cc [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/browser/android/chrome_feature_list.h [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/browser/flag-metadata.json [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/browser/flag_descriptions.cc [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/chrome/browser/flag_descriptions.h [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/tools/metrics/histograms/enums.xml [modify] https://crrev.com/338cc933e27c8c67e0df5193a1a885179f72ae75/ui/android/BUILD.gn [delete] https://crrev.com/1b878fc95604f9018ea8f16c56571d7033a05cd9/ui/android/features.gni [delete] https://crrev.com/1b878fc95604f9018ea8f16c56571d7033a05cd9/ui/android/java/res_night/values-night/colors.xml
,
Jan 9
Can we try another bisect? I would be really surprised if the reverted CL were actually to blame. This CL, also on the first failure, seems more likely (at least vr related): "[ar/vr] Add module split name to manifests" https://chromium-review.googlesource.com/c/1400955
,
Jan 9
I think it is indeed related to my CL. I see this log message: java.lang.ExceptionInInitializerError 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.base.ContextUtils$Holder.access$100(ContextUtils.java:31) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.base.ContextUtils.getAppSharedPreferences(ContextUtils.java:87) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.chrome.browser.preferences.ChromePreferenceManager.<init>(ChromePreferenceManager.java:265) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.chrome.browser.preferences.ChromePreferenceManager.<init>(ChromePreferenceManager.java:21) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.chrome.browser.preferences.ChromePreferenceManager$LazyHolder.<clinit>(ChromePreferenceManager.java:259) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.chrome.browser.preferences.ChromePreferenceManager.getInstance(ChromePreferenceManager.java:273) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.chrome.browser.util.FeatureUtilities.isNightModeAvailable(FeatureUtilities.java:372) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.chrome.browser.ChromeApplication.initDefaultNightMode(ChromeApplication.java:227) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.chrome.browser.ChromeApplication.onCreate(ChromeApplication.java:65) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1118) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5791) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.app.ActivityThread.-wrap1(Unknown Source:0) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:105) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6541) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: Caused by: java.lang.IllegalStateException: SharedPreferences in credential encrypted storage are not available until after user is unlocked 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:389) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:370) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:167) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:526) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.base.ContextUtils.fetchAppSharedPreferences(ContextUtils.java:76) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.base.ContextUtils.access$000(ContextUtils.java:22) 01-09 20:43:27.377 23313 23313 E AndroidRuntime: at org.chromium.base.ContextUtils$Holder.<clinit>(ContextUtils.java:33) bsheedy@ - Is there any special settings on O VR tests that could cause this?
,
Jan 9
I double checked the bisection's results before reverting, and checked again just now by syncing to ToT with the revert in. The logcat output from a failed test has: 01-09 19:19:06.331 18054 18054 E AndroidRuntime: FATAL EXCEPTION: main 01-09 19:19:06.331 18054 18054 E AndroidRuntime: Process: org.chromium.chrome:sandboxed_process0, PID: 18054 01-09 19:19:06.331 18054 18054 E AndroidRuntime: java.lang.ExceptionInInitializerError 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.base.ContextUtils$Holder.access$100(ContextUtils.java:31) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.base.ContextUtils.getAppSharedPreferences(ContextUtils.java:87) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.chrome.browser.preferences.ChromePreferenceManager.<init>(ChromePreferenceManager.java:265) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.chrome.browser.preferences.ChromePreferenceManager.<init>(ChromePreferenceManager.java:21) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.chrome.browser.preferences.ChromePreferenceManager$LazyHolder.<clinit>(ChromePreferenceManager.java:259) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.chrome.browser.preferences.ChromePreferenceManager.getInstance(ChromePreferenceManager.java:273) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.chrome.browser.util.FeatureUtilities.isNightModeAvailable(FeatureUtilities.java:372) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.chrome.browser.ChromeApplication.initDefaultNightMode(ChromeApplication.java:227) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.chrome.browser.ChromeApplication.onCreate(ChromeApplication.java:65) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1118) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5791) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.app.ActivityThread.-wrap1(Unknown Source:0) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:105) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6541) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: Caused by: java.lang.IllegalStateException: SharedPreferences in credential encrypted storage are not available until after user is unlocked 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:389) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:370) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:167) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:526) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.base.ContextUtils.fetchAppSharedPreferences(ContextUtils.java:76) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.base.ContextUtils.access$000(ContextUtils.java:22) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: at org.chromium.base.ContextUtils$Holder.<clinit>(ContextUtils.java:33) 01-09 19:19:06.331 18054 18054 E AndroidRuntime: ... 19 more Which is caused by one of the files touched in the CL (ChromePreferenceManager.java).
,
Jan 9
Nothing is changed for the VR tests between N and O, and this also affected the AR tests, which are much closer to "normal" Chrome instrumentation tests. My guess is that it's related to the OS version, although I'm not aware of any changes to shared preferences (which seem to be the root cause of the crash) in O off the top of my head.
,
Jan 9
I looked online and this seems to be related to that if the device is locked, we can't access shared preference because it is credential encrypted storage staring O https://cs.corp.google.com/aosp-master/frameworks/base/core/java/android/app/ContextImpl.java?type=cs&q=%22SharedPreferences+in+credential+encrypted%22&g=0&l=437
,
Jan 9
AFAIK the ability to use the encrypted storage for shared preferences was added in N (https://cs.chromium.org/chromium/src/third_party/catapult/devil/devil/android/sdk/shared_prefs.py?q=sharedprefs&sq=package:chromium&dr=CSs&l=199), and this was reproing locally on a device that was unlocked and on the home screen.
,
Jan 9
I think the wording of my comment 8 is a little confusing. If you look at the link at comment 8, the exception will be thrown if it is O+, and is encrypted storage (N+) and if the user is not unlocked. bsheedy@, would you be able to check if the exception will still happen if the device is unlocked?
,
Jan 9
huayinz@: I got a crash with the same stack trace when launching Chrome normally with an Android O device.
,
Jan 9
Hm.. okay, then that's definitely my fault. Will investigate...
,
Jan 9
I randomly tried moving initDefaultNightMode() to within the
if(isBrowserProcess) {}
block in ChromeApplication and the crash went away. I am not sure if this is the right thing to do.
,
Jan 10
Interesting... Thanks for the investigation. I see the other access to ChromePreferenceManager is inside the isBrowserProcess block as well...
,
Jan 10
Yeah, a ChromeApplication instance is created for all of our processes (browser, renderer, gpu, ...). The renderer process doesn't have file access and preferences require file access, so not surprising this is making it sad.
,
Jan 10
Oh.. Good to know. Thanks Ted and Peter!
,
Jan 10
Yes, definitely good to know. Thanks for the help investigating! There's a reland in-flight associated with the original crbug, so I think we can close this out. |
|||||||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||||||
Comment 1 by bsheedy@chromium.org
, Jan 9