diff options
| author | 2023-04-17 22:38:30 +0000 | |
|---|---|---|
| committer | 2023-04-17 22:38:30 +0000 | |
| commit | f9722e1b6b1118906d41b4a2f2d3655dcf937b6c (patch) | |
| tree | cbd74753e84d7fde9dbe7038ec6637389557b448 | |
| parent | 666967659084661eb64e0b424af0f7229425e65b (diff) | |
| parent | 431d59fb2c724d3017d959383488a5f1e439066d (diff) | |
Merge "Do not crash webview if its group creation fails due to a dead process" am: 1774ccf397 am: 16e6563f3f am: 431d59fb2c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2521297
Change-Id: Iac94dcae962f1f71fd21eb1a0967c4f8d465b493
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/am/ProcessList.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index 312f98ad6e09..d7b22a8a2da0 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -108,6 +108,7 @@ import android.os.Trace; import android.os.UserHandle; import android.os.storage.StorageManagerInternal; import android.system.Os; +import android.system.OsConstants; import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; @@ -2331,9 +2332,15 @@ public final class ProcessList { if (!regularZygote) { // webview and app zygote don't have the permission to create the nodes - if (Process.createProcessGroup(uid, startResult.pid) < 0) { - throw new AssertionError("Unable to create process group for " + app.processName - + " (" + startResult.pid + ")"); + final int res = Process.createProcessGroup(uid, startResult.pid); + if (res < 0) { + if (res == -OsConstants.ESRCH) { + Slog.e(ActivityManagerService.TAG, "Unable to create process group for " + + app.processName + " (" + startResult.pid + ")"); + } else { + throw new AssertionError("Unable to create process group for " + + app.processName + " (" + startResult.pid + ")"); + } } } |