From 231b3d8f6032d5451b9fb8dc94bcbfacaef9af13 Mon Sep 17 00:00:00 2001 From: Gavin Corkery Date: Tue, 10 Dec 2019 19:48:50 +0000 Subject: [PATCH] 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 cf6a399e006d24dbe5bf8ae2e946f8d2e648b630) --- .../rollback/RollbackPackageHealthObserver.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java index ae95483976cb7..3a94c931dd5c9 100644 --- a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java +++ b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java @@ -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); } });