summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Colin Cross <ccross@android.com> 2014-07-14 15:07:04 -0700
committer Colin Cross <ccross@android.com> 2014-07-14 15:08:45 -0700
commit3089bed197a4fbfcc3fb741aa0ed6b3e162e392c (patch)
tree07eb080c7a4bac327745284c20da9222a16babe5
parent85cfec811e35025dbde54f4dc09fe0e1337c36b8 (diff)
Zygote: make libprocessgroup failures non-fatal
createProcessGroup can fail if the kernel does not support the cpuacct cgroup. Print a more useful error message, and don't runtime abort. Bug: 16243791 Change-Id: Ibbf081bda58a99c83b8070f55d151905c706b378
-rw-r--r--core/jni/com_android_internal_os_Zygote.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 989b60eef0d2..64366e5a0467 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -439,8 +439,11 @@ static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArra
if (!is_system_server) {
int rc = createProcessGroup(uid, getpid());
if (rc != 0) {
- ALOGE("createProcessGroup(%d, %d) failed: %s", uid, pid, strerror(-rc));
- RuntimeAbort(env);
+ if (rc == -EROFS) {
+ ALOGW("createProcessGroup failed, kernel missing CONFIG_CGROUP_CPUACCT?");
+ } else {
+ ALOGE("createProcessGroup(%d, %d) failed: %s", uid, pid, strerror(-rc));
+ }
}
}