Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fff95ba5 authored by James Hawkins's avatar James Hawkins
Browse files

bootstat: Two changes to aid in debugging TimeSinceFactoryReset.

* Also log to the BootEventRecordStore to check lossiness.
* Log factory_reset_current_time_failure separately.

Bug: 27550578
Change-Id: Id3d579a74a59ac28290cb7d6048765519f9ba59b
parent fbdbf100
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -224,13 +224,23 @@ void RecordFactoryReset() {

  time_t current_time_utc = time(nullptr);

  static const char* factory_reset_current_time = "factory_reset_current_time";
  if (current_time_utc < 0) {
    // UMA does not display negative values in buckets, so convert to positive.
    bootstat::LogHistogram(factory_reset_current_time, std::abs(current_time_utc));
    bootstat::LogHistogram(
        "factory_reset_current_time_failure", std::abs(current_time_utc));

    // Logging via BootEventRecordStore to see if using bootstat::LogHistogram
    // is losing records somehow.
    boot_event_store.AddBootEventWithValue(
        "factory_reset_current_time_failure", std::abs(current_time_utc));
    return;
  } else {
    bootstat::LogHistogram(factory_reset_current_time, current_time_utc);
    bootstat::LogHistogram("factory_reset_current_time", current_time_utc);

    // Logging via BootEventRecordStore to see if using bootstat::LogHistogram
    // is losing records somehow.
    boot_event_store.AddBootEventWithValue(
        "factory_reset_current_time", current_time_utc);
  }

  // The factory_reset boot event does not exist after the device is reset, so
@@ -247,6 +257,12 @@ void RecordFactoryReset() {
  // factory_reset time.
  time_t factory_reset_utc = record.second;
  bootstat::LogHistogram("factory_reset_record_value", factory_reset_utc);

  // Logging via BootEventRecordStore to see if using bootstat::LogHistogram
  // is losing records somehow.
  boot_event_store.AddBootEventWithValue(
      "factory_reset_record_value", factory_reset_utc);

  time_t time_since_factory_reset = difftime(current_time_utc,
                                             factory_reset_utc);
  boot_event_store.AddBootEventWithValue("time_since_factory_reset",