Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit afc12766 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Log watchdog-initiated rollback reason am: 254b0d5a

Change-Id: I2487bca4fd0579c2f66de15da727ada54a26cfe1
parents 8272038d 254b0d5a
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1394,7 +1394,10 @@ Status StatsService::sendBinaryPushStateChangedAtom(const android::String16& tra

Status StatsService::sendWatchdogRollbackOccurredAtom(const int32_t rollbackTypeIn,
                                                      const android::String16& packageNameIn,
                                                      const int64_t packageVersionCodeIn) {
                                                      const int64_t packageVersionCodeIn,
                                                      const int32_t rollbackReasonIn,
                                                      const android::String16&
                                                       failingPackageNameIn) {
    // Note: We skip the usage stats op check here since we do not have a package name.
    // This is ok since we are overloading the usage_stats permission.
    // This method only sends data, it does not receive it.
@@ -1416,7 +1419,8 @@ Status StatsService::sendWatchdogRollbackOccurredAtom(const int32_t rollbackType
    }

    android::util::stats_write(android::util::WATCHDOG_ROLLBACK_OCCURRED,
            rollbackTypeIn, String8(packageNameIn).string(), packageVersionCodeIn);
            rollbackTypeIn, String8(packageNameIn).string(), packageVersionCodeIn,
            rollbackReasonIn, String8(failingPackageNameIn).string());

    // Fast return to save disk read.
    if (rollbackTypeIn != android::util::WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS
+3 −1
Original line number Diff line number Diff line
@@ -200,7 +200,9 @@ public:
    virtual Status sendWatchdogRollbackOccurredAtom(
            const int32_t rollbackTypeIn,
            const android::String16& packageNameIn,
            const int64_t packageVersionCodeIn) override;
            const int64_t packageVersionCodeIn,
            const int32_t rollbackReasonIn,
            const android::String16& failingPackageNameIn) override;

    /**
     * Binder call to get registered experiment IDs.
+13 −0
Original line number Diff line number Diff line
@@ -1692,6 +1692,19 @@ message WatchdogRollbackOccurred {
    optional string package_name = 2;

    optional int32 package_version_code = 3;

    enum RollbackReasonType {
        REASON_UNKNOWN = 0;
        REASON_NATIVE_CRASH = 1;
        REASON_EXPLICIT_HEALTH_CHECK = 2;
        REASON_APP_CRASH = 3;
        REASON_APP_NOT_RESPONDING = 4;
    }
    optional RollbackReasonType rollback_reason = 4;

    // Set by RollbackPackageHealthObserver to be the package that is failing when a rollback
    // is initiated. Empty if the package is unknown.
    optional string failing_package_name = 5;
}

/**
+1 −1
Original line number Diff line number Diff line
@@ -224,7 +224,7 @@ interface IStatsManager {
     * Logs an event for watchdog rollbacks.
     */
     oneway void sendWatchdogRollbackOccurredAtom(in int rollbackType, in String packageName,
         in long packageVersionCode);
         in long packageVersionCode,  in int rollbackReason, in String failingPackageName);

    /**
     * Returns the most recently registered experiment IDs.
+4 −2
Original line number Diff line number Diff line
@@ -179,6 +179,8 @@ public final class StatsLog extends StatsLogInternal {
     * @param rollbackType          state of the rollback.
     * @param packageName           package name being rolled back.
     * @param packageVersionCode    version of the package being rolled back.
     * @param rollbackReason        reason the package is being rolled back.
     * @param failingPackageName    the package name causing the failure.
     *
     * @return True if the log request was sent to statsd.
     *
@@ -186,7 +188,7 @@ public final class StatsLog extends StatsLogInternal {
     */
    @RequiresPermission(allOf = {DUMP, PACKAGE_USAGE_STATS})
    public static boolean logWatchdogRollbackOccurred(int rollbackType, String packageName,
            long packageVersionCode) {
            long packageVersionCode, int rollbackReason, String failingPackageName) {
        synchronized (sLogLock) {
            try {
                IStatsManager service = getIStatsManagerLocked();
@@ -198,7 +200,7 @@ public final class StatsLog extends StatsLogInternal {
                }

                service.sendWatchdogRollbackOccurredAtom(rollbackType, packageName,
                        packageVersionCode);
                        packageVersionCode, rollbackReason, failingPackageName);
                return true;
            } catch (RemoteException e) {
                sService = null;
Loading