From 553fec2267bba56b16d8a3e30fe5771e6d2f15c4 Mon Sep 17 00:00:00 2001 From: lumark Date: Wed, 27 Mar 2019 16:40:46 +0800 Subject: [PATCH] Fix system crash during RWC#resumeHomeActivity called. Add global lock when calling RWC#resumeHomeActivity to fix the CL[1] that calling method by post runnable, system may crash due to race condition during force-stop launcher package. [1]: I243fab507268f81df0a8067883157d63f0f79c22 Fix: 129352498 Test: atest TaplTestsLauncher3 without system crash. Change-Id: I2d63ee43f8ca832d3f1c5e49b518af712ac6e0d3 --- services/core/java/com/android/server/wm/ActivityStack.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java index 4c9b80be5d7c3..46c017ec7f4fa 100644 --- a/services/core/java/com/android/server/wm/ActivityStack.java +++ b/services/core/java/com/android/server/wm/ActivityStack.java @@ -3059,7 +3059,11 @@ class ActivityStack extends ConfigurationContainer { // activity in home stack. // See {@link #mInResumeTopActivity}. mService.mH.post( - () -> mRootActivityContainer.resumeHomeActivity(prev, reason, mDisplayId)); + () -> { + synchronized (mService.mGlobalLock) { + mRootActivityContainer.resumeHomeActivity(prev, reason, mDisplayId); + } + }); return true; } else { return mRootActivityContainer.resumeHomeActivity(prev, reason, mDisplayId);