Improve logging in bootstat.

This should help in debugging issues related to the mismatch between
actual last reboot reason property and the expected one (see attached
bug).

Test: adb reboot
Test: adb logcat | grep bootstat
Bug: 152900920
Change-Id: I085cf1fb80a30389fd3ba821d40b6111a3294d95
This commit is contained in:
Nikita Ioffe 2020-03-31 23:47:45 +01:00
parent 2af5bd00b0
commit 49062f3b72

View file

@ -1238,16 +1238,26 @@ void SetSystemBootReason() {
// Shift last_reboot_reason_property to last_last_reboot_reason_property
std::string last_boot_reason;
if (!android::base::ReadFileToString(last_reboot_reason_file, &last_boot_reason)) {
PLOG(ERROR) << "Failed to read " << last_reboot_reason_file;
last_boot_reason = android::base::GetProperty(last_reboot_reason_property, "");
LOG(INFO) << "Value of " << last_reboot_reason_property << " : " << last_boot_reason;
} else {
LOG(INFO) << "Last reboot reason read from " << last_reboot_reason_file << " : "
<< last_boot_reason << ". Last reboot reason read from "
<< last_reboot_reason_property << " : "
<< android::base::GetProperty(last_reboot_reason_property, "");
}
if (last_boot_reason.empty() || isKernelRebootReason(system_boot_reason)) {
last_boot_reason = system_boot_reason;
} else {
transformReason(last_boot_reason);
}
LOG(INFO) << "Normalized last reboot reason : " << last_boot_reason;
android::base::SetProperty(last_last_reboot_reason_property, last_boot_reason);
android::base::SetProperty(last_reboot_reason_property, "");
unlink(last_reboot_reason_file);
if (unlink(last_reboot_reason_file) != 0) {
PLOG(ERROR) << "Failed to unlink " << last_reboot_reason_file;
}
}
// Gets the boot time offset. This is useful when Android is running in a