OSDN Git Service

Increase timeout for ADB backup/restore of SharedStorage.
authorJohan Torås Halseth <johanth@google.com>
Wed, 3 May 2017 09:43:06 +0000 (10:43 +0100)
committerJohan Torås Halseth <johanth@google.com>
Wed, 3 May 2017 09:44:23 +0000 (10:44 +0100)
This is a manual merge of ag/2161962 into master.

Test: it compiles.

Change-Id: Ice6648554933baf76e96fd151b506564487c91c6

services/backup/java/com/android/server/backup/BackupManagerService.java
services/backup/java/com/android/server/backup/RefactoredBackupManagerService.java
services/backup/java/com/android/server/backup/fullbackup/FullBackupEngine.java
services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java

index 04a54a7..45ecbdb 100644 (file)
@@ -3866,9 +3866,14 @@ public class BackupManagerService implements BackupManagerServiceInterface {
                         writeApkToBackup(mPackage, output);
                     }
 
+                    final boolean isSharedStorage =
+                            mPackage.packageName.equals(SHARED_BACKUP_AGENT_PACKAGE);
+                    final long timeout = isSharedStorage ?
+                            TIMEOUT_SHARED_BACKUP_INTERVAL : TIMEOUT_FULL_BACKUP_INTERVAL;
+
                     if (DEBUG) Slog.d(TAG, "Calling doFullBackup() on " + mPackage.packageName);
-                    prepareOperationTimeout(mToken, TIMEOUT_FULL_BACKUP_INTERVAL,
-                            mTimeoutMonitor /* in parent class */, OP_TYPE_BACKUP_WAIT);
+                    prepareOperationTimeout(mToken, timeout, mTimeoutMonitor /* in parent class */,
+                            OP_TYPE_BACKUP_WAIT);
                     mAgent.doFullBackup(mPipe, mQuota, mToken, mBackupManagerBinder);
                 } catch (IOException e) {
                     Slog.e(TAG, "Error running full backup for " + mPackage.packageName);
@@ -7554,9 +7559,12 @@ if (MORE_DEBUG) Slog.v(TAG, "   + got " + nRead + "; now wanting " + (size - soF
                         if (okay) {
                             boolean agentSuccess = true;
                             long toCopy = info.size;
+                            final boolean isSharedStorage = pkg.equals(SHARED_BACKUP_AGENT_PACKAGE);
+                            final long timeout = isSharedStorage ?
+                                    TIMEOUT_SHARED_BACKUP_INTERVAL : TIMEOUT_RESTORE_INTERVAL;
                             final int token = generateRandomIntegerToken();
                             try {
-                                prepareOperationTimeout(token, TIMEOUT_RESTORE_INTERVAL, null,
+                                prepareOperationTimeout(token, timeout, null,
                                         OP_TYPE_RESTORE_WAIT);
                                 if (FullBackup.OBB_TREE_TOKEN.equals(info.domain)) {
                                     if (DEBUG) Slog.d(TAG, "Restoring OBB file for " + pkg
index 151354b..db0a38f 100644 (file)
@@ -217,7 +217,7 @@ public class RefactoredBackupManagerService implements BackupManagerServiceInter
     // Timeout intervals for agent backup & restore operations
     public static final long TIMEOUT_BACKUP_INTERVAL = 30 * 1000;
     public static final long TIMEOUT_FULL_BACKUP_INTERVAL = 5 * 60 * 1000;
-    private static final long TIMEOUT_SHARED_BACKUP_INTERVAL = 30 * 60 * 1000;
+    public static final long TIMEOUT_SHARED_BACKUP_INTERVAL = 30 * 60 * 1000;
     public static final long TIMEOUT_RESTORE_INTERVAL = 60 * 1000;
     public static final long TIMEOUT_RESTORE_FINISHED_INTERVAL = 30 * 1000;
 
index 72eeea0..47ae206 100644 (file)
@@ -120,13 +120,20 @@ public class FullBackupEngine {
                     writeApkToBackup(mPackage, output);
                 }
 
+                final boolean isSharedStorage =
+                        mPackage.packageName.equals(
+                                RefactoredBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE);
+                final long timeout = isSharedStorage ?
+                        RefactoredBackupManagerService.TIMEOUT_SHARED_BACKUP_INTERVAL :
+                        RefactoredBackupManagerService.TIMEOUT_FULL_BACKUP_INTERVAL;
+
                 if (RefactoredBackupManagerService.DEBUG) {
                     Slog.d(RefactoredBackupManagerService.TAG,
                             "Calling doFullBackup() on " + mPackage.packageName);
                 }
                 backupManagerService
                         .prepareOperationTimeout(mToken,
-                                RefactoredBackupManagerService.TIMEOUT_FULL_BACKUP_INTERVAL,
+                                timeout,
                                 mTimeoutMonitor /* in parent class */,
                                 RefactoredBackupManagerService.OP_TYPE_BACKUP_WAIT);
                 mAgent.doFullBackup(mPipe, mQuota, mToken,
index 5009075..c9cccab 100644 (file)
@@ -371,9 +371,14 @@ public class FullRestoreEngine extends RestoreEngine {
                     if (okay) {
                         boolean agentSuccess = true;
                         long toCopy = info.size;
+                        final boolean isSharedStorage = pkg.equals(
+                                RefactoredBackupManagerService.SHARED_BACKUP_AGENT_PACKAGE);
+                        final long timeout = isSharedStorage ?
+                                RefactoredBackupManagerService.TIMEOUT_SHARED_BACKUP_INTERVAL :
+                                RefactoredBackupManagerService.TIMEOUT_RESTORE_INTERVAL;
                         try {
                             backupManagerService.prepareOperationTimeout(token,
-                                    RefactoredBackupManagerService.TIMEOUT_FULL_BACKUP_INTERVAL,
+                                    timeout,
                                     mMonitorTask,
                                     RefactoredBackupManagerService.OP_TYPE_RESTORE_WAIT);