New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 639304 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug
M55

Blocking:
issue 315958
issue 622495



Sign in to add a comment

AboutFlags_ UMA actions should be deprecated in favor of a single enum histogram

Project Member Reported by asvitk...@chromium.org, Aug 19 2016

Issue description

AboutFlags_ UMA actions should be deprecated in favor of a single enum histogram.

Additionally, the AboutFlags_ actions are currently not logged on CrOS or Android, so when this change is made, we should ensure the new histogram is consistently logged everywhere.
 
Blocking: 622495
Sent out the first CL (https://codereview.chromium.org/2257533005/) for review.
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 30 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ab33c92ba610714412e7a572451bb58e5317c86f

commit ab33c92ba610714412e7a572451bb58e5317c86f
Author: asvitkine <asvitkine@chromium.org>
Date: Tue Aug 30 20:34:19 2016

Change logging of about:flags from actions to a histogram.

This CL deprecates all the "AboutFlags_*" actions and instead
replaces their logging with a AboutFlags.Seen histogram, that
has all the actions as enumerations.

This new histogram is logged using the same code that logs
Login.CustomFlags histogram on ChromeOS. Following this
change, via separate CLs I plan to deprecate Login.CustomFlags
in favor of AboutFlags.Seen and also make the new histogram
get logged on Android, where I think it's currently not logged.

BUG= 639304 

Review-Url: https://codereview.chromium.org/2257533005
Cr-Commit-Position: refs/heads/master@{#415410}

[modify] https://crrev.com/ab33c92ba610714412e7a572451bb58e5317c86f/chrome/browser/about_flags.cc
[modify] https://crrev.com/ab33c92ba610714412e7a572451bb58e5317c86f/chrome/browser/about_flags.h
[modify] https://crrev.com/ab33c92ba610714412e7a572451bb58e5317c86f/chrome/browser/chromeos/login/session/user_session_manager.cc
[modify] https://crrev.com/ab33c92ba610714412e7a572451bb58e5317c86f/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
[modify] https://crrev.com/ab33c92ba610714412e7a572451bb58e5317c86f/tools/metrics/actions/actions.xml
[modify] https://crrev.com/ab33c92ba610714412e7a572451bb58e5317c86f/tools/metrics/actions/extract_actions.py
[modify] https://crrev.com/ab33c92ba610714412e7a572451bb58e5317c86f/tools/metrics/histograms/histograms.xml

Comment 4 by pke@google.com, Aug 31 2016

Not sure if this newly occurring bug is related: When toggling any flag XYZ and restarting Chrome, it immediately crashes with the following error message and needs to be wiped to get it working again: (note that the flag name is indeed lacking the "--")

08-31 11:46:46.902 24316 24316 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 24316 (oid.apps.chrome)
08-31 11:46:47.012   221   221 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-31 11:46:47.013   221   221 F DEBUG   : Build fingerprint: 'google/volantis/flounder:6.0.1/MOB30W/3031100:user/release-keys'
08-31 11:46:47.013   221   221 F DEBUG   : Revision: '0'
08-31 11:46:47.013   221   221 F DEBUG   : ABI: 'arm'
08-31 11:46:47.013   221   221 F DEBUG   : pid: 24316, tid: 24316, name: oid.apps.chrome  >>> com.google.android.apps.chrome <<<
08-31 11:46:47.013   221   221 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
08-31 11:46:47.048   221   221 F DEBUG   : Abort message: '[FATAL:about_flags.cc(2211)] Check failed: false. ReportAboutFlagsHistogram(): flag 'XYZ@1' has incorrect format.
08-31 11:46:47.048   221   221 F DEBUG   : #00 0xd7ff4d1d /data/app/com.google.android.apps.chrome-1/lib/arm/libbase.cr.so+0x0008ad1d
08-31 11:46:47.048   221   221 F DEBUG   : #01 0xcfc31043 /data/app/com.google.android.apps.chrome-1/lib/arm/libchrome.cr.so+0x0034b043
08-31 11:46:47.048   221   221 F DEBUG   : #02 0xcfa9f93f /data/app/com.google.android.apps.chrome-1/lib/arm/libchrome.cr.so+0x001b993f
08-31 11:46:47.048   221   221 F DEBUG   : #03 0xcfa9f909 /data/app/com.google.android.apps.chrome-1/lib/arm/
08-31 11:46:47.048   221   221 F DEBUG   :     r0 00000000  r1 00005efc  r2 00000006  r3 f7430b7c
08-31 11:46:47.049   221   221 F DEBUG   :     r4 f7430b84  r5 f7430b34  r6 00000009  r7 0000010c
08-31 11:46:47.049   221   221 F DEBUG   :     r8 fff007d8  r9 fff002f8  sl fff007d0  fp ab605488
08-31 11:46:47.049   221   221 F DEBUG   :     ip 00000006  sp fff00290  lr f71bacb1  pc f71bd0a0  cpsr 40070010
08-31 11:46:47.076   221   221 F DEBUG   : 
08-31 11:46:47.076   221   221 F DEBUG   : backtrace:
08-31 11:46:47.076   221   221 F DEBUG   :     #00 pc 000440a0  /system/lib/libc.so (tgkill+12)
08-31 11:46:47.077   221   221 F DEBUG   :     #01 pc 00041cad  /system/lib/libc.so (pthread_kill+32)
08-31 11:46:47.077   221   221 F DEBUG   :     #02 pc 0001b957  /system/lib/libc.so (raise+10)
08-31 11:46:47.077   221   221 F DEBUG   :     #03 pc 00018b09  /system/lib/libc.so (__libc_android_abort+34)
08-31 11:46:47.077   221   221 F DEBUG   :     #04 pc 00016770  /system/lib/libc.so (abort+4)
08-31 11:46:47.077   221   221 F DEBUG   :     #05 pc 00077527  /data/app/com.google.android.apps.chrome-1/lib/arm/libbase.cr.so (_ZN4base5debug13BreakDebuggerEv+22)
08-31 11:46:47.077   221   221 F DEBUG   :     #06 pc 0008af19  /data/app/com.google.android.apps.chrome-1/lib/arm/libbase.cr.so (_ZN7logging10LogMessageD1Ev+556)
08-31 11:46:47.077   221   221 F DEBUG   :     #07 pc 0034b041  /data/app/com.google.android.apps.chrome-1/lib/arm/libchrome.cr.so
08-31 11:46:47.077   221   221 F DEBUG   :     #08 pc 001b993d  /data/app/com.google.android.apps.chrome-1/lib/arm/libchrome.cr.so
08-31 11:46:47.078   221   221 F DEBUG   :     #09 pc 001b9907  /data/app/com.google.android.apps.chrome-1/lib/arm/libchrome.cr.so
08-31 11:46:47.078   221   221 F DEBUG   :     #10 pc 001b9823  /data/app/com.google.android.apps.chrome-1/lib/arm/libchrome.cr.so
08-31 11:46:47.078   221   221 F DEBUG   :     #11 pc 00170fe7  /data/app/com.google.android.apps.chrome-1/lib/arm/libchrome.cr.so
08-31 11:46:47.078   221   221 F DEBUG   :     #12 pc 0017097f  /data/app/com.google.android.apps.chrome-1/lib/arm/libchrome.cr.so
08-31 11:46:47.078   221   221 F DEBUG   :     #13 pc 0067337f  /data/app/com.google.android.apps.chrome-1/lib/arm/libcontent.cr.so (_ZN7content15BrowserMainLoop21PreMainMessageLoopRunEv+46)
08-31 11:46:47.078   221   221 F DEBUG   :     #14 pc 0088faed  /data/app/com.google.android.apps.chrome-1/lib/arm/libcontent.cr.so (_ZN7content17StartupTaskRunner11WrappedTaskEv+24)
08-31 11:46:47.078   221   221 F DEBUG   :     #15 pc 00079fd3  /data/app/com.google.android.apps.chrome-1/lib/arm/libbase.cr.so (_ZN4base5debug13TaskAnnotator7RunTaskEPKcRKNS_11PendingTaskE+122)
08-31 11:46:47.078   221   221 F DEBUG   :     #16 pc 00090f1d  /data/app/com.google.android.apps.chrome-1/lib/arm/libbase.cr.so (_ZN4base11MessageLoop7RunTaskERKNS_11PendingTaskE+200)
08-31 11:46:47.078   221   221 F DEBUG   :     #17 pc 000910bf  /data/app/com.google.android.apps.chrome-1/lib/arm/libbase.cr.so (_ZN4base11MessageLoop21DeferOrRunPendingTaskENS_11PendingTaskE+20)
08-31 11:46:47.078   221   221 F DEBUG   :     #18 pc 0009123d  /data/app/com.google.android.apps.chrome-1/lib/arm/libbase.cr.so (_ZN4base11MessageLoop6DoWorkEv+172)
08-31 11:46:47.078   221   221 F DEBUG   :     #19 pc 000923e1  /data/app/com.google.android.apps.chrome-1/lib/arm/libbase.cr.so (Java_org_chromium_base_SystemMessageHandler_nativeDoRunLoopOnce+104)
08-31 11:46:47.079   221   221 F DEBUG   :     #20 pc 01141fcd  /data/app/com.google.android.apps.chrome-1/oat/arm/base.odex (offset 0xdb8000) (void org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(long, long, long)+120)
08-31 11:46:47.079   221   221 F DEBUG   :     #21 pc 01142479  /data/app/com.google.android.apps.chrome-1/oat/arm/base.odex (offset 0xdb8000) (void org.chromium.base.SystemMessageHandler.handleMessage(android.os.Message)+220)
08-31 11:46:47.079   221   221 F DEBUG   :     #22 pc 725645c1  /data/dalvik-cache/arm/system@framework@boot.oat (offset 0x1ec9000)
08-31 11:46:47.461   221   221 F DEBUG   : 
08-31 11:46:47.461   221   221 F DEBUG   : Tombstone written to: /data/tombstones/tombstone_03
08-31 11:46:47.461   221   221 E DEBUG   : AM write failed: Broken pipe

Comment 5 by pke@google.com, Aug 31 2016

Reverting ab33c92ba610714412e7a572451bb58e5317c86f fixes the crash.
Sorry about this, looking.
Have a fix in the works. Since this is a DCHECK currently, I'm thinking we don't need to revert the original CL since it doesn't affect production - and I plan to land the follow-up fix today.
Project Member

Comment 8 by bugdroid1@chromium.org, Aug 31 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c1a0c4f2a642dbfb107a454dbc322692c7cf57ee

commit c1a0c4f2a642dbfb107a454dbc322692c7cf57ee
Author: asvitkine <asvitkine@chromium.org>
Date: Wed Aug 31 20:37:39 2016

Fix logging of Launch.FlagsAtStartup histogram.

My initial change was logging the internal value,
rather than the actual switch value. This change
performs the necessary conversion.

BUG= 639304 

Review-Url: https://codereview.chromium.org/2298223002
Cr-Commit-Position: refs/heads/master@{#415741}

[modify] https://crrev.com/c1a0c4f2a642dbfb107a454dbc322692c7cf57ee/chrome/browser/about_flags.cc
[modify] https://crrev.com/c1a0c4f2a642dbfb107a454dbc322692c7cf57ee/components/flags_ui/flags_state.cc
[modify] https://crrev.com/c1a0c4f2a642dbfb107a454dbc322692c7cf57ee/components/flags_ui/flags_state.h

Labels: M55
 Issue 541222  has been merged into this issue.
Cc: isherman@chromium.org rkaplow@chromium.org alemate@chromium.org
 Issue 622729  has been merged into this issue.
Status: Fixed (was: Started)
Marking as Fixed.

It appears the histogram does indeed get logged on all platforms, including Android and CrOS - but there is just very few flags seen on CrOS. (Probably because there are very few users on non-stable CrOS channels.)

https://uma.googleplex.com/p/chrome/timeline_v2/?sid=987501e90758069eb2ab90efd5a2fb24

There's a follow up bug here where we want to log values of flags:
https://bugs.chromium.org/p/chromium/issues/detail?id=647330
This is awesome, thanks!  Is there a good baseline for FlagsAtStartup to compare against?  Eg. to answer "what fraction of startups have XXX flag set"?  Should a "total startups" bucket be added to the enum to make this easy?  Or is that perhaps not very useful anyway (eg. some users may have a lot more "startups" than others - especially on Android) and some other analysis is really needed?
Blocking: 315958
To answer comment 13 - you're right, we don't have bucket that just counts startups in that histogram. One could certainly be added - thought it'd be a bit wasteful since right now the histogram is not logged at all for users who don't have any flags.

You could use another histogram that's logged as startup to compare - e.g. the total count of Startup.BrowserMessageLoopStartTime.

Sign in to add a comment