[AMS] Fix race condition in ProcessList.

ProcessList.noteAppKill should be called with lock but
AppErrors.crashApplicationInner doesn't. So fix it.

Bug: 215575163
Test: Manual
Change-Id: I594256a8989f6bf79ac0b12ff5069cc895872b22
This commit is contained in:
qinyige1
2022-01-21 15:09:28 +08:00
parent fef33579a6
commit 9193fa1c93

View File

@@ -575,12 +575,14 @@ class AppErrors {
mPackageWatchdog.onPackageFailure(r.getPackageListWithVersionCode(),
PackageWatchdog.FAILURE_REASON_APP_CRASH);
mService.mProcessList.noteAppKill(r, (crashInfo != null
&& "Native crash".equals(crashInfo.exceptionClassName))
? ApplicationExitInfo.REASON_CRASH_NATIVE
: ApplicationExitInfo.REASON_CRASH,
ApplicationExitInfo.SUBREASON_UNKNOWN,
"crash");
synchronized (mService) {
mService.mProcessList.noteAppKill(r, (crashInfo != null
&& "Native crash".equals(crashInfo.exceptionClassName))
? ApplicationExitInfo.REASON_CRASH_NATIVE
: ApplicationExitInfo.REASON_CRASH,
ApplicationExitInfo.SUBREASON_UNKNOWN,
"crash");
}
}
final int relaunchReason = r != null