diff options
| author | 2023-03-13 18:06:28 +0000 | |
|---|---|---|
| committer | 2023-03-13 18:06:28 +0000 | |
| commit | 931bdd37244de4357a3650b96855abf81caaa318 (patch) | |
| tree | b4a94eb5f0714bf8ac71e5f8dced974d2719acd0 | |
| parent | 510521083cf65caefc48617278128c0fc31a094f (diff) | |
| parent | 087c3f92270173a61e10d384dafb1cda995d2aef (diff) | |
Merge "Treat process group creation failure due to a dead process as non-fatal" am: 03dfa27d40 am: 97735895a2 am: 087c3f9227
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2467472
Change-Id: I733fd852690030cd71dd6f951f03df47a7f15d21
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | core/jni/com_android_internal_os_Zygote.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 1b812d125be1..d62f1cfcbddf 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -1805,10 +1805,15 @@ static void SpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArray gids, if (!is_system_server && getuid() == 0) { const int rc = createProcessGroup(uid, getpid()); if (rc != 0) { - fail_fn(rc == -EROFS ? CREATE_ERROR("createProcessGroup failed, kernel missing " - "CONFIG_CGROUP_CPUACCT?") - : CREATE_ERROR("createProcessGroup(%d, %d) failed: %s", uid, - /* pid= */ 0, strerror(-rc))); + if (rc == -ESRCH) { + // If process is dead, treat this as a non-fatal error + ALOGE("createProcessGroup(%d, %d) failed: %s", uid, /* pid= */ 0, strerror(-rc)); + } else { + fail_fn(rc == -EROFS ? CREATE_ERROR("createProcessGroup failed, kernel missing " + "CONFIG_CGROUP_CPUACCT?") + : CREATE_ERROR("createProcessGroup(%d, %d) failed: %s", uid, + /* pid= */ 0, strerror(-rc))); + } } } |