Merge "init: dump less debug logs when unmount timeout" am: 1945fbef10 am: 31cd4f16b2

am: 80af251e39

Change-Id: I226294f33f09cc90b50a98febe21a5583adcb3e5
This commit is contained in:
Jonglin Lee 2019-01-17 15:39:15 -08:00 committed by android-build-merger
commit 123301b5bd

View file

@ -196,7 +196,7 @@ static bool FindPartitionsToUmount(std::vector<MountEntry>* blockDevPartitions,
return true;
}
static void DumpUmountDebuggingInfo(bool dump_all) {
static void DumpUmountDebuggingInfo() {
int status;
if (!security_getenforce()) {
LOG(INFO) << "Run lsof";
@ -205,10 +205,9 @@ static void DumpUmountDebuggingInfo(bool dump_all) {
true, nullptr, nullptr, 0);
}
FindPartitionsToUmount(nullptr, nullptr, true);
if (dump_all) {
// dump current tasks, this log can be lengthy, so only dump with dump_all
android::base::WriteStringToFile("t", "/proc/sysrq-trigger");
}
// dump current CPU stack traces and uninterruptible tasks
android::base::WriteStringToFile("l", "/proc/sysrq-trigger");
android::base::WriteStringToFile("w", "/proc/sysrq-trigger");
}
static UmountStat UmountPartitions(std::chrono::milliseconds timeout) {
@ -271,11 +270,11 @@ static UmountStat TryUmountAndFsck(bool runFsck, std::chrono::milliseconds timeo
UmountStat stat = UmountPartitions(timeout - t.duration());
if (stat != UMOUNT_STAT_SUCCESS) {
LOG(INFO) << "umount timeout, last resort, kill all and try";
if (DUMP_ON_UMOUNT_FAILURE) DumpUmountDebuggingInfo(true);
if (DUMP_ON_UMOUNT_FAILURE) DumpUmountDebuggingInfo();
KillAllProcesses();
// even if it succeeds, still it is timeout and do not run fsck with all processes killed
UmountStat st = UmountPartitions(0ms);
if ((st != UMOUNT_STAT_SUCCESS) && DUMP_ON_UMOUNT_FAILURE) DumpUmountDebuggingInfo(false);
if ((st != UMOUNT_STAT_SUCCESS) && DUMP_ON_UMOUNT_FAILURE) DumpUmountDebuggingInfo();
}
if (stat == UMOUNT_STAT_SUCCESS && runFsck) {