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

Commit 133aadd2 authored by Beatrice Marchegiani's avatar Beatrice Marchegiani Committed by Android (Google) Code Review
Browse files

Merge changes from topic "cherrypicker-L70900000962694331:N04700001398643943" into udc-qpr-dev

* changes:
  Add logic to persiste BMM events to a text file and print them in the dumpsys function
  For each event logged during PerformUnifiedRestoreTask specify that the operationType is Restore
  Rename BackupManagerMonitorUtil to BackupManagerMonitorEventSender and convert it into an instance class in preparation of adding more complex behaviour for recording BMM events to dumpsys.
parents df1b3151 48f686ce
Loading
Loading
Loading
Loading
+35 −5
Original line number Diff line number Diff line
@@ -132,7 +132,8 @@ import com.android.server.backup.transport.TransportConnection;
import com.android.server.backup.transport.TransportNotAvailableException;
import com.android.server.backup.transport.TransportNotRegisteredException;
import com.android.server.backup.utils.BackupEligibilityRules;
import com.android.server.backup.utils.BackupManagerMonitorUtils;
import com.android.server.backup.utils.BackupManagerMonitorDumpsysUtils;
import com.android.server.backup.utils.BackupManagerMonitorEventSender;
import com.android.server.backup.utils.BackupObserverUtils;
import com.android.server.backup.utils.SparseArrayUtils;

@@ -141,6 +142,7 @@ import dalvik.annotation.optimization.NeverCompile;
import com.google.android.collect.Sets;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -149,6 +151,7 @@ import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
@@ -1830,12 +1833,14 @@ public class UserBackupManagerService {
     */
    public int requestBackup(String[] packages, IBackupObserver observer,
            IBackupManagerMonitor monitor, int flags) {
        BackupManagerMonitorEventSender  mBackupManagerMonitorEventSender =
                getBMMEventSender(monitor);
        mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "requestBackup");

        if (packages == null || packages.length < 1) {
            Slog.e(TAG, addUserIdToLogMessage(mUserId, "No packages named for backup request"));
            BackupObserverUtils.sendBackupFinished(observer, BackupManager.ERROR_TRANSPORT_ABORTED);
            monitor = BackupManagerMonitorUtils.monitorEvent(monitor,
            mBackupManagerMonitorEventSender.monitorEvent(
                    BackupManagerMonitor.LOG_EVENT_ID_NO_PACKAGES,
                    null, BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT, null);
            throw new IllegalArgumentException("No packages are provided for backup");
@@ -1853,7 +1858,7 @@ public class UserBackupManagerService {
            final int logTag = mSetupComplete
                    ? BackupManagerMonitor.LOG_EVENT_ID_BACKUP_DISABLED
                    : BackupManagerMonitor.LOG_EVENT_ID_DEVICE_NOT_PROVISIONED;
            monitor = BackupManagerMonitorUtils.monitorEvent(monitor, logTag, null,
            mBackupManagerMonitorEventSender.monitorEvent(logTag, null,
                    BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY, null);
            return BackupManager.ERROR_BACKUP_NOT_ALLOWED;
        }
@@ -1871,7 +1876,7 @@ public class UserBackupManagerService {
        } catch (TransportNotRegisteredException | TransportNotAvailableException
                | RemoteException e) {
            BackupObserverUtils.sendBackupFinished(observer, BackupManager.ERROR_TRANSPORT_ABORTED);
            monitor = BackupManagerMonitorUtils.monitorEvent(monitor,
            mBackupManagerMonitorEventSender.monitorEvent(
                    BackupManagerMonitor.LOG_EVENT_ID_TRANSPORT_IS_NULL,
                    null, BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT, null);
            return BackupManager.ERROR_TRANSPORT_ABORTED;
@@ -3066,7 +3071,9 @@ public class UserBackupManagerService {
                    /* caller */ "BMS.reportDelayedRestoreResult");

            IBackupManagerMonitor monitor = transportClient.getBackupManagerMonitor();
            BackupManagerMonitorUtils.sendAgentLoggingResults(monitor, packageInfo, results,
            BackupManagerMonitorEventSender  mBackupManagerMonitorEventSender =
                    getBMMEventSender(monitor);
            mBackupManagerMonitorEventSender.sendAgentLoggingResults(packageInfo, results,
                    BackupAnnotations.OperationType.RESTORE);
        } catch (NameNotFoundException | TransportNotAvailableException
                | TransportNotRegisteredException | RemoteException e) {
@@ -3190,6 +3197,11 @@ public class UserBackupManagerService {
        }
    }

    @VisibleForTesting
    BackupManagerMonitorEventSender getBMMEventSender(IBackupManagerMonitor monitor) {
        return new BackupManagerMonitorEventSender(monitor);
    }

    /** User-configurable enabling/disabling of backups. */
    public void setBackupEnabled(boolean enable) {
        setBackupEnabled(enable, /* persistToDisk */ true);
@@ -4148,6 +4160,7 @@ public class UserBackupManagerService {
                }
            }
            dumpInternal(pw);
            dumpBMMEvents(pw);
        } finally {
            Binder.restoreCallingIdentity(identityToken);
        }
@@ -4165,6 +4178,23 @@ public class UserBackupManagerService {
        }
    }

    private void dumpBMMEvents(PrintWriter pw) {
        BackupManagerMonitorDumpsysUtils bm =
                new BackupManagerMonitorDumpsysUtils();
        File events = bm.getBMMEventsFile();
        pw.println("START OF BACKUP MANAGER MONITOR EVENTS");
        try (BufferedReader reader = new BufferedReader(new FileReader(events))) {
            String line;
            while ((line = reader.readLine()) != null) {
                pw.println(line);
            }
        } catch (IOException e) {
            Slog.e(TAG, "IO Exception when reading BMM events from file: " + e);
            pw.println("IO Exception when reading BMM events from file");
        }
        pw.println("END OF BACKUP MANAGER MONITOR EVENTS");
    }

    @NeverCompile // Avoid size overhead of debugging code.
    private void dumpInternal(PrintWriter pw) {
        // Add prefix for only non-system users so that system user dumpsys is the same as before
+5 −7
Original line number Diff line number Diff line
@@ -23,13 +23,11 @@ import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST
import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_FILENAME;
import static com.android.server.backup.UserBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE;

import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.app.ApplicationThreadConstants;
import android.app.IBackupAgent;
import android.app.backup.BackupTransport;
import android.app.backup.FullBackupDataOutput;
import android.app.backup.IBackupManagerMonitor;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
@@ -44,7 +42,7 @@ import com.android.server.backup.OperationStorage.OpType;
import com.android.server.backup.UserBackupManagerService;
import com.android.server.backup.remote.RemoteCall;
import com.android.server.backup.utils.BackupEligibilityRules;
import com.android.server.backup.utils.BackupManagerMonitorUtils;
import com.android.server.backup.utils.BackupManagerMonitorEventSender;
import com.android.server.backup.utils.FullBackupUtils;

import java.io.File;
@@ -69,7 +67,7 @@ public class FullBackupEngine {
    private final int mTransportFlags;
    private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
    private final BackupEligibilityRules mBackupEligibilityRules;
    @Nullable private final IBackupManagerMonitor mMonitor;
    private final BackupManagerMonitorEventSender mBackupManagerMonitorEventSender;

    class FullBackupRunner implements Runnable {
        private final @UserIdInt int mUserId;
@@ -198,7 +196,7 @@ public class FullBackupEngine {
            int opToken,
            int transportFlags,
            BackupEligibilityRules backupEligibilityRules,
            IBackupManagerMonitor monitor) {
            BackupManagerMonitorEventSender backupManagerMonitorEventSender) {
        this.backupManagerService = backupManagerService;
        mOutput = output;
        mPreflightHook = preflightHook;
@@ -213,7 +211,7 @@ public class FullBackupEngine {
                        backupManagerService.getAgentTimeoutParameters(),
                        "Timeout parameters cannot be null");
        mBackupEligibilityRules = backupEligibilityRules;
        mMonitor = monitor;
        mBackupManagerMonitorEventSender = backupManagerMonitorEventSender;
    }

    public int preflightCheck() throws RemoteException {
@@ -270,7 +268,7 @@ public class FullBackupEngine {
                    result = BackupTransport.TRANSPORT_OK;
                }

                BackupManagerMonitorUtils.monitorAgentLoggingResults(mMonitor, mPkg, mAgent);
                mBackupManagerMonitorEventSender.monitorAgentLoggingResults(mPkg, mAgent);
            } catch (IOException e) {
                Slog.e(TAG, "Error backing up " + mPkg.packageName + ": " + e.getMessage());
                result = BackupTransport.AGENT_ERROR;
+2 −1
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import com.android.server.backup.KeyValueAdbBackupEngine;
import com.android.server.backup.OperationStorage;
import com.android.server.backup.UserBackupManagerService;
import com.android.server.backup.utils.BackupEligibilityRules;
import com.android.server.backup.utils.BackupManagerMonitorEventSender;
import com.android.server.backup.utils.PasswordUtils;

import java.io.ByteArrayOutputStream;
@@ -421,7 +422,7 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor
                                mCurrentOpToken,
                                /*transportFlags=*/ 0,
                                mBackupEligibilityRules,
                                /* monitor= */ null);
                                new BackupManagerMonitorEventSender(null));
                sendOnBackupPackage(isSharedStorage ? "Shared storage" : pkg.packageName);

                // Don't need to check preflight result as there is no preflight hook.
+21 −19
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ import com.android.server.backup.transport.BackupTransportClient;
import com.android.server.backup.transport.TransportConnection;
import com.android.server.backup.transport.TransportNotAvailableException;
import com.android.server.backup.utils.BackupEligibilityRules;
import com.android.server.backup.utils.BackupManagerMonitorUtils;
import com.android.server.backup.utils.BackupManagerMonitorEventSender;
import com.android.server.backup.utils.BackupObserverUtils;

import com.google.android.collect.Sets;
@@ -153,7 +153,6 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
    CountDownLatch mLatch;
    FullBackupJob mJob;             // if a scheduled job needs to be finished afterwards
    IBackupObserver mBackupObserver;
    @Nullable private IBackupManagerMonitor mMonitor;
    boolean mUserInitiated;
    SinglePackageBackupRunner mBackupRunner;
    private final int mBackupRunnerOpToken;
@@ -167,6 +166,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
    private final int mCurrentOpToken;
    private final BackupAgentTimeoutParameters mAgentTimeoutParameters;
    private final BackupEligibilityRules mBackupEligibilityRules;
    private BackupManagerMonitorEventSender mBackupManagerMonitorEventSender;

    public PerformFullTransportBackupTask(UserBackupManagerService backupManagerService,
            OperationStorage operationStorage,
@@ -185,11 +185,12 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
        mJob = runningJob;
        mPackages = new ArrayList<>(whichPackages.length);
        mBackupObserver = backupObserver;
        mMonitor = monitor;
        mListener = (listener != null) ? listener : OnTaskFinishedListener.NOP;
        mUserInitiated = userInitiated;
        mCurrentOpToken = backupManagerService.generateRandomIntegerToken();
        mBackupRunnerOpToken = backupManagerService.generateRandomIntegerToken();
        mBackupManagerMonitorEventSender =
                new BackupManagerMonitorEventSender(monitor);
        mAgentTimeoutParameters = Objects.requireNonNull(
                backupManagerService.getAgentTimeoutParameters(),
                "Timeout parameters cannot be null");
@@ -218,7 +219,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
                    if (MORE_DEBUG) {
                        Slog.d(TAG, "Ignoring ineligible package " + pkg);
                    }
                    mMonitor = BackupManagerMonitorUtils.monitorEvent(mMonitor,
                    mBackupManagerMonitorEventSender.monitorEvent(
                            BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_INELIGIBLE,
                            mCurrentPackage,
                            BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
@@ -233,7 +234,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
                        Slog.d(TAG, "Ignoring full-data backup of key/value participant "
                                + pkg);
                    }
                    mMonitor = BackupManagerMonitorUtils.monitorEvent(mMonitor,
                    mBackupManagerMonitorEventSender.monitorEvent(
                            BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_KEY_VALUE_PARTICIPANT,
                            mCurrentPackage,
                            BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
@@ -248,7 +249,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
                    if (MORE_DEBUG) {
                        Slog.d(TAG, "Ignoring stopped package " + pkg);
                    }
                    mMonitor = BackupManagerMonitorUtils.monitorEvent(mMonitor,
                    mBackupManagerMonitorEventSender.monitorEvent(
                            BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_STOPPED,
                            mCurrentPackage,
                            BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
@@ -260,7 +261,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
                mPackages.add(info);
            } catch (NameNotFoundException e) {
                Slog.i(TAG, "Requested package " + pkg + " not found; ignoring");
                mMonitor = BackupManagerMonitorUtils.monitorEvent(mMonitor,
                mBackupManagerMonitorEventSender.monitorEvent(
                        BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_NOT_FOUND,
                        mCurrentPackage,
                        BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
@@ -356,8 +357,8 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
                } else {
                    monitoringEvent = BackupManagerMonitor.LOG_EVENT_ID_DEVICE_NOT_PROVISIONED;
                }
                mMonitor = BackupManagerMonitorUtils
                        .monitorEvent(mMonitor, monitoringEvent, null,
                mBackupManagerMonitorEventSender
                        .monitorEvent(monitoringEvent, null,
                                BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
                                null);
                mUpdateSchedule = false;
@@ -369,7 +370,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
            if (transport == null) {
                Slog.w(TAG, "Transport not present; full data backup not performed");
                backupRunStatus = BackupManager.ERROR_TRANSPORT_ABORTED;
                mMonitor = BackupManagerMonitorUtils.monitorEvent(mMonitor,
                mBackupManagerMonitorEventSender.monitorEvent(
                        BackupManagerMonitor.LOG_EVENT_ID_PACKAGE_TRANSPORT_NOT_PRESENT,
                        mCurrentPackage, BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT,
                        null);
@@ -378,9 +379,10 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba

            // In some cases there may not be a monitor passed in when creating this task. So, if we
            // don't have one already we ask the transport for a monitor.
            if (mMonitor == null) {
            if (mBackupManagerMonitorEventSender.getMonitor() == null) {
                try {
                    mMonitor = transport.getBackupManagerMonitor();
                    mBackupManagerMonitorEventSender
                            .setMonitor(transport.getBackupManagerMonitor());
                } catch (RemoteException e) {
                    Slog.i(TAG, "Failed to retrieve monitor from transport");
                }
@@ -457,11 +459,11 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
                                    + packageName + ": " + preflightResult
                                    + ", not running backup.");
                        }
                        mMonitor = BackupManagerMonitorUtils.monitorEvent(mMonitor,
                        mBackupManagerMonitorEventSender.monitorEvent(
                                BackupManagerMonitor.LOG_EVENT_ID_ERROR_PREFLIGHT,
                                mCurrentPackage,
                                BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
                                BackupManagerMonitorUtils.putMonitoringExtra(null,
                                mBackupManagerMonitorEventSender.putMonitoringExtra(null,
                                        BackupManagerMonitor.EXTRA_LOG_PREFLIGHT_ERROR,
                                        preflightResult));
                        backupPackageStatus = (int) preflightResult;
@@ -492,7 +494,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
                        if (backupPackageStatus == BackupTransport.TRANSPORT_QUOTA_EXCEEDED) {
                            Slog.w(TAG, "Package hit quota limit in-flight " + packageName
                                    + ": " + totalRead + " of " + quota);
                            mMonitor = BackupManagerMonitorUtils.monitorEvent(mMonitor,
                            mBackupManagerMonitorEventSender.monitorEvent(
                                    BackupManagerMonitor.LOG_EVENT_ID_QUOTA_HIT_PREFLIGHT,
                                    mCurrentPackage,
                                    BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT,
@@ -647,11 +649,11 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
        } catch (Exception e) {
            backupRunStatus = BackupManager.ERROR_TRANSPORT_ABORTED;
            Slog.w(TAG, "Exception trying full transport backup", e);
            mMonitor = BackupManagerMonitorUtils.monitorEvent(mMonitor,
            mBackupManagerMonitorEventSender.monitorEvent(
                    BackupManagerMonitor.LOG_EVENT_ID_EXCEPTION_FULL_BACKUP,
                    mCurrentPackage,
                    BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
                    BackupManagerMonitorUtils.putMonitoringExtra(null,
                    mBackupManagerMonitorEventSender.putMonitoringExtra(null,
                            BackupManagerMonitor.EXTRA_LOG_EXCEPTION_FULL_BACKUP,
                            Log.getStackTraceString(e)));

@@ -885,7 +887,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
                            mCurrentOpToken,
                            mTransportFlags,
                            mBackupEligibilityRules,
                            mMonitor);
                            mBackupManagerMonitorEventSender);
            try {
                try {
                    if (!mIsCancelled) {
@@ -967,7 +969,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
                Slog.w(TAG, "Full backup cancel of " + mTarget.packageName);
            }

            mMonitor = BackupManagerMonitorUtils.monitorEvent(mMonitor,
            mBackupManagerMonitorEventSender.monitorEvent(
                    BackupManagerMonitor.LOG_EVENT_ID_FULL_BACKUP_CANCEL,
                    mCurrentPackage, BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT, null);
            mIsCancelled = true;
+25 −34
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ import com.android.server.backup.BackupManagerService;
import com.android.server.backup.DataChangedJournal;
import com.android.server.backup.UserBackupManagerService;
import com.android.server.backup.remote.RemoteResult;
import com.android.server.backup.utils.BackupManagerMonitorUtils;
import com.android.server.backup.utils.BackupManagerMonitorEventSender;
import com.android.server.backup.utils.BackupObserverUtils;

import java.io.File;
@@ -65,21 +65,21 @@ public class KeyValueBackupReporter {

    private final UserBackupManagerService mBackupManagerService;
    private final IBackupObserver mObserver;
    @Nullable private IBackupManagerMonitor mMonitor;
    private final BackupManagerMonitorEventSender mBackupManagerMonitorEventSender;

    KeyValueBackupReporter(
            UserBackupManagerService backupManagerService,
            IBackupObserver observer,
            @Nullable IBackupManagerMonitor monitor) {
            BackupManagerMonitorEventSender backupManagerMonitorEventSender) {
        mBackupManagerService = backupManagerService;
        mObserver = observer;
        mMonitor = monitor;
        mBackupManagerMonitorEventSender = backupManagerMonitorEventSender;
    }

    /** Returns the monitor or {@code null} if we lost connection to it. */
    @Nullable
    IBackupManagerMonitor getMonitor() {
        return mMonitor;
        return mBackupManagerMonitorEventSender.getMonitor();
    }

    IBackupObserver getObserver() {
@@ -208,13 +208,11 @@ public class KeyValueBackupReporter {
    void onAgentIllegalKey(PackageInfo packageInfo, String key) {
        String packageName = packageInfo.packageName;
        EventLog.writeEvent(EventLogTags.BACKUP_AGENT_FAILURE, packageName, "bad key");
        mMonitor =
                BackupManagerMonitorUtils.monitorEvent(
                        mMonitor,
        mBackupManagerMonitorEventSender.monitorEvent(
                        BackupManagerMonitor.LOG_EVENT_ID_ILLEGAL_KEY,
                        packageInfo,
                        BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
                        BackupManagerMonitorUtils.putMonitoringExtra(
                        mBackupManagerMonitorEventSender.putMonitoringExtra(
                                null, BackupManagerMonitor.EXTRA_LOG_ILLEGAL_KEY, key));
        BackupObserverUtils.sendBackupOnPackageResult(
                mObserver, packageName, BackupManager.ERROR_AGENT_FAILURE);
@@ -254,9 +252,7 @@ public class KeyValueBackupReporter {
        if (MORE_DEBUG) {
            Slog.i(TAG, "No backup data written, not calling transport");
        }
        mMonitor =
                BackupManagerMonitorUtils.monitorEvent(
                        mMonitor,
        mBackupManagerMonitorEventSender.monitorEvent(
                BackupManagerMonitor.LOG_EVENT_ID_NO_DATA_TO_SEND,
                packageInfo,
                BackupManagerMonitor.LOG_EVENT_CATEGORY_BACKUP_MANAGER_POLICY,
@@ -291,8 +287,7 @@ public class KeyValueBackupReporter {

    void onPackageBackupNonIncrementalRequired(PackageInfo packageInfo) {
        Slog.i(TAG, "Transport lost data, retrying package");
        BackupManagerMonitorUtils.monitorEvent(
                mMonitor,
        mBackupManagerMonitorEventSender.monitorEvent(
                BackupManagerMonitor.LOG_EVENT_ID_TRANSPORT_NON_INCREMENTAL_BACKUP_REQUIRED,
                packageInfo,
                BackupManagerMonitor.LOG_EVENT_CATEGORY_TRANSPORT,
@@ -335,13 +330,11 @@ public class KeyValueBackupReporter {
        EventLog.writeEvent(EventLogTags.BACKUP_AGENT_FAILURE, packageName);
        // Time-out used to be implemented as cancel w/ cancelAll = false.
        // TODO: Change monitoring event to reflect time-out as an event itself.
        mMonitor =
                BackupManagerMonitorUtils.monitorEvent(
                        mMonitor,
        mBackupManagerMonitorEventSender.monitorEvent(
                BackupManagerMonitor.LOG_EVENT_ID_KEY_VALUE_BACKUP_CANCEL,
                packageInfo,
                BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT,
                        BackupManagerMonitorUtils.putMonitoringExtra(
                mBackupManagerMonitorEventSender.putMonitoringExtra(
                        null, BackupManagerMonitor.EXTRA_LOG_CANCEL_ALL, false));
    }

@@ -349,13 +342,11 @@ public class KeyValueBackupReporter {
        String packageName = getPackageName(packageInfo);
        Slog.i(TAG, "Cancel backing up " + packageName);
        EventLog.writeEvent(EventLogTags.BACKUP_AGENT_FAILURE, packageName);
        mMonitor =
                BackupManagerMonitorUtils.monitorEvent(
                        mMonitor,
        mBackupManagerMonitorEventSender.monitorEvent(
                BackupManagerMonitor.LOG_EVENT_ID_KEY_VALUE_BACKUP_CANCEL,
                packageInfo,
                BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT,
                        BackupManagerMonitorUtils.putMonitoringExtra(
                mBackupManagerMonitorEventSender.putMonitoringExtra(
                        null, BackupManagerMonitor.EXTRA_LOG_CANCEL_ALL, true));
    }

Loading