From 2aa1d18e3acd269ed7a5f5a4843d447735f0676c Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Thu, 9 Oct 2014 15:20:24 -0700 Subject: Fix bug 17931760 - spurious timeout leads to mayhem We know a priori that the PMBA metadata package's backup pass doesn't need to be tracked for timeout, because it's run inline rather than as an asynchronous separate-process operation. Change-Id: Ifd21ab3a016917f5e557a38c1c88f8d8ac1337d2 --- .../backup/java/com/android/server/backup/BackupManagerService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index 4d2df2473d84..3694d61fe4d3 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -2415,6 +2415,11 @@ public class BackupManagerService extends IBackupManager.Stub { mStatus = invokeAgentForBackup(PACKAGE_MANAGER_SENTINEL, IBackupAgent.Stub.asInterface(pmAgent.onBind()), mTransport); addBackupTrace("PMBA invoke: " + mStatus); + + // Because the PMBA is a local instance, it has already executed its + // backup callback and returned. Blow away the lingering (spurious) + // pending timeout message for it. + mBackupHandler.removeMessages(MSG_TIMEOUT); } if (mStatus == BackupTransport.TRANSPORT_NOT_INITIALIZED) { -- cgit v1.2.3-59-g8ed1b