FRE crashes on DCHECK if accepting TOS more than once. |
|||||||
Issue descriptionChrome Version: 61 TOT OS: Android What steps will reproduce the problem? (1) Clear data on Chrome (2) Start Chrome and go through FRE (3) Before accepting on final Sign-in page, go all the way back to the beginning (4) Hit accept on the first screen for a second time. What is the expected result? It proceeds along happily. What happens instead? It crashes on a DCHECK 07-11 20:18:50.826 32616 32616 F chromium: [FATAL:metrics_reporting_default_state.cc(21)] Check failed: GetMetricsReportingDefaultState(local_state) == EnableMetricsDefault::DEFAULT_UNKNOWN (2 vs. 0) Stack Trace: RELADDR FUNCTION FILE:LINE 00049db4 tgkill+12 /system/lib/libc.so 00047553 pthread_kill+34 /system/lib/libc.so 0001d8a5 raise+10 /system/lib/libc.so 000193f1 __libc_android_abort+34 /system/lib/libc.so 00017034 abort+4 /system/lib/libc.so v------> base::debug::(anonymous namespace)::DebugBreak() src/base/debug/debugger_posix.cc:228 00094f0b base::debug::BreakDebugger() src/base/debug/debugger_posix.cc:258 000a7ebf logging::LogMessage::~LogMessage() src/base/logging.cc:784 00798117 metrics::RecordMetricsReportingDefaultState(PrefService*, metrics::EnableMetricsDefault) src/components/metrics/metrics_reporting_default_state.cc:20 v------> chrome::android::RecordMetricsReportingDefaultOptIn(_JNIEnv*, base::android::JavaParamRef<_jclass*> const&, unsigned char) src/chrome/browser/android/metrics/uma_utils.cc:39 00579de7 Java_org_chromium_chrome_browser_metrics_UmaUtils_nativeRecordMetricsReportingDefaultOptIn src/out/Debug/gen/chrome/browser/jni_headers/chrome/jni/UmaUtils_jni.h:52 001e5471 offset 0x5d4000 /data/data/com.google.android.apps.chrome/incremental-install-files/optimized-dexes/chrome.android.chrome_java.dex.dex
,
Jul 11 2017
Specifically, RecordMetricsReportingDefaultOptIn() JNI is how this is called from Java. Maybe we should only call this once we finish the FRE, as opposed to when advancing through the first screen.
,
Jul 27 2017
,
Aug 28 2017
Probably won't get to this in M62.
,
Sep 27 2017
I believe I hit a similar DCHECK on iOS. It's not clear to me how to workaround this? [0927/103041.680314:FATAL:metrics_reporting_default_state.cc(21)] Check failed: GetMetricsReportingDefaultState(local_state) == EnableMetricsDefault::DEFAULT_UNKNOWN (2 vs. 0) 0 Chromium 0x000000010f9ae00d base::debug::StackTrace::StackTrace(unsigned long) + 157 1 Chromium 0x000000010f9ae04d base::debug::StackTrace::StackTrace(unsigned long) + 29 2 Chromium 0x000000010f9acb0c base::debug::StackTrace::StackTrace() + 28 3 Chromium 0x000000010fa12e0f logging::LogMessage::~LogMessage() + 479 4 Chromium 0x000000010fa10965 logging::LogMessage::~LogMessage() + 21 5 Chromium 0x0000000111a7c984 metrics::RecordMetricsReportingDefaultState(PrefService*, metrics::EnableMetricsDefault) + 212 6 Chromium 0x000000010f76b543 __58+[WelcomeToChromeViewController defaultStatsCheckboxValue]_block_invoke + 51 7 libdispatch.dylib 0x00000001224f62b5 _dispatch_client_callout + 8 8 libdispatch.dylib 0x00000001224f7749 dispatch_once_f + 55 9 Chromium 0x000000010f76b4d4 +[WelcomeToChromeViewController defaultStatsCheckboxValue] + 84 10 Chromium 0x000000010f76bda0 -[WelcomeToChromeViewController loadView] + 224 11 UIKit 0x000000011951dbd7 -[UIViewController loadViewIfRequired] + 195 12 UIKit 0x000000011951e434 -[UIViewController view] + 27 13 UIKit 0x00000001195738e2 -[UINavigationController preferredContentSize] + 197 14 UIKit 0x00000001194f67c0 -[UIPresentationController preferredContentSizeDidChangeForChildContentContainer:] + 64 15 UIKit 0x00000001194f2552 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 109 16 UIKit 0x000000011938f5c9 _runAfterCACommitDeferredBlocks + 318 17 UIKit 0x000000011937ddad _cleanUpAfterCAFlushAndRunDeferredBlocks + 280 18 UIKit 0x000000011939f07c __34-[UIApplication _firstCommitBlock]_block_invoke_2 + 155 19 CoreFoundation 0x000000011b4c620c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 20 CoreFoundation 0x000000011b4aaa3b __CFRunLoopDoBlocks + 203 21 CoreFoundation 0x000000011b4aa214 __CFRunLoopRun + 1300 22 CoreFoundation 0x000000011b4a9a89 CFRunLoopRunSpecific + 409 23 GraphicsServices 0x00000001210909c6 GSEventRunModal + 62 24 UIKit 0x00000001193837d0 UIApplicationMain + 159 25 Chromium 0x000000010e79b503 (anonymous namespace)::RunUIApplicationMain(int, char**) + 371 26 Chromium 0x000000010e79afe3 main + 419 27 libdyld.dylib 0x000000012256ad81 start + 1
,
Nov 3 2017
This still seems to be crashing making testing on iOS difficult. Is there an ETA for a fix?
,
Nov 3 2017
,
Nov 3 2017
The iOS and Android changes to fix this will be different - since it involves changing where in the FRE flow we tell UMA about the default state. Basically, we need the flows such that we tell the UMA code only when things are finalized (whereas right now user can go back in the wizard and then go through it again to trigger that code to be called multiple times). No eta on the fix, as there's a bunch of higher priority stuff on my plate that's taking precedence. Bumping milestone. You can comment out the DCHECK locally if it's causing problems for you in the meantime.
,
Dec 13 2017
,
Jun 13 2018
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by asvitk...@chromium.org
, Jul 11 2017Owner: asvitk...@chromium.org
Status: Assigned (was: Available)