OSDN Git Service

Close statsd log socket before zygote fork().
authorHoward Ro <yro@google.com>
Tue, 2 Oct 2018 19:08:28 +0000 (12:08 -0700)
committerChris Wailes <chriswailes@google.com>
Thu, 1 Nov 2018 22:24:33 +0000 (15:24 -0700)
MetricsLogger will start to write to statsd instead of logd. Zygote uses
MetricsLogger too. So we need to close statsd socket before zygote fork() is
called (see b/30963384 for context).

Bug: 110537511
Test: Manually verified that it successfully boots with no crash with
ag/5112579 and ag/5169664 (together)

Change-Id: Id550fbd5ac2f6ca47d3293c12fb537fafa3f33a0
Merged-In: Id550fbd5ac2f6ca47d3293c12fb537fafa3f33a0

core/jni/Android.bp
core/jni/com_android_internal_os_Zygote.cpp

index d1a7d70..ed59dd4 100644 (file)
@@ -229,6 +229,7 @@ cc_library_shared {
         "libseccomp_policy",
         "libgrallocusage",
         "libscrypt_static",
+        "libstatssocket",
     ],
 
     shared_libs: [
index da25801..6f400c4 100644 (file)
@@ -56,6 +56,7 @@
 #include <utils/String8.h>
 #include <selinux/android.h>
 #include <seccomp_policy.h>
+#include <stats_event_list.h>
 #include <processgroup/processgroup.h>
 
 #include "core_jni_helpers.h"
@@ -788,6 +789,7 @@ static pid_t ForkCommon(JNIEnv* env, jstring java_se_name, bool is_system_server
   // Close any logging related FDs before we start evaluating the list of
   // file descriptors.
   __android_log_close();
+  stats_log_close();
 
   std::string error_msg;