With UKM enabled, ChromeMetricsServiceClient::InitializeSystemProfileMetrics can be called twice, once by UMA and once by UKM. If one has finished by the time the other is called, it seems to work fine, (though some init steps may be repeated), but if they are both started at the same time it may result in incorrect behavior.
In debug builds, this results in a DCHECK, but on release builds, it may result in one the metrics services being started before it's last initialization step is complete.
In normal circumstance, UKM is usually initialized after UMA initialization is finished, probably due to delay from waiting for sync to be initialized, but this could still potentially occur. It can
be triggered more often when running with --force-enable-metrics-reporting, since that will start both services a soon as possible.
Comment 1 by asvitk...@chromium.org
, Jul 11 2017