From 1f3fab1a37f5fe64fbded0ee30e3ec3880907f6c Mon Sep 17 00:00:00 2001 From: Rubin Xu Date: Thu, 12 Mar 2020 14:51:56 +0000 Subject: [PATCH] Fix deadlock of starting intent during turing on profile Start the intent on a handler thread instead of the user start progress callback. Bug: 149220125 Test: atest QuietModeHostsideTest Test: turning on profile by tapping on some app launcher icon Change-Id: I44bc862c1d72aae3d2d79862c92ddbe4d3a58483 --- .../com/android/server/pm/UserManagerService.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index df3c83aec85ad..7d0993b0ca0e7 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -455,11 +455,13 @@ public class UserManagerService extends IUserManager.Stub { @Override public void onFinished(int id, Bundle extras) { - try { - mContext.startIntentSender(mTarget, null, 0, 0, 0); - } catch (IntentSender.SendIntentException e) { - Slog.e(LOG_TAG, "Failed to start the target in the callback", e); - } + mHandler.post(() -> { + try { + mContext.startIntentSender(mTarget, null, 0, 0, 0); + } catch (IntentSender.SendIntentException e) { + Slog.e(LOG_TAG, "Failed to start the target in the callback", e); + } + }); } }