Log native crashing process

Use the new sys.init.updatable_crashing_process_name in
Watchdog-triggered rollback logs in order to track the
process that causes updatable_crashing to be set.

Test: Run atest StagedRollbackTest#testNativeWatchdogTriggersRollback,
      manually test correct process "zygote" is sent to logs.
Bug: 146415463

Change-Id: I81b55dbf9dc74c9b8d505988b99f7e97ef659fe9
Merged-In: I81b55dbf9dc74c9b8d505988b99f7e97ef659fe9
(cherry picked from commit cf6a399e00)
This commit is contained in:
Gavin Corkery
2019-12-10 19:48:50 +00:00
parent 254b0d5a7f
commit 231b3d8f60

View File

@@ -120,6 +120,13 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
RollbackInfo rollback = getAvailableRollback(rollbackManager, failedPackage);
int reasonToLog = mapFailureReasonToMetric(rollbackReason);
final String failedPackageToLog;
if (rollbackReason == PackageWatchdog.FAILURE_REASON_NATIVE_CRASH) {
failedPackageToLog = SystemProperties.get(
"ro.init.updatable_crashing_process_name", "");
} else {
failedPackageToLog = failedPackage.getPackageName();
}
if (rollback == null) {
Slog.w(TAG, "Expected rollback but no valid rollback found for package: [ "
+ failedPackage.getPackageName() + "] with versionCode: ["
@@ -129,7 +136,7 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
logEvent(moduleMetadataPackage,
StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_INITIATE,
reasonToLog, failedPackage.getPackageName());
reasonToLog, failedPackageToLog);
LocalIntentReceiver rollbackReceiver = new LocalIntentReceiver((Intent result) -> {
int status = result.getIntExtra(RollbackManager.EXTRA_STATUS,
RollbackManager.STATUS_FAILURE);
@@ -147,12 +154,12 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
} else {
logEvent(moduleMetadataPackage,
StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS,
reasonToLog, failedPackage.getPackageName());
reasonToLog, failedPackageToLog);
}
} else {
logEvent(moduleMetadataPackage,
StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_FAILURE,
reasonToLog, failedPackage.getPackageName());
reasonToLog, failedPackageToLog);
}
});