OSDN Git Service

Accept socket connection before tracing.
authorChristopher Ferris <cferris@google.com>
Thu, 2 Oct 2014 00:35:01 +0000 (17:35 -0700)
committerChristopher Ferris <cferris@google.com>
Thu, 2 Oct 2014 00:35:01 +0000 (17:35 -0700)
Sometimes dumping threads takes a long time and bugreport times
out. This change will cause us to accept the bugreport socket connection
before dumping threads and should avoid the failed to connect to dumpstate
service problems we've seen.

Bug: 17758374
Change-Id: I80afa0353cf1c340873f481a8d1d7faffff54120

cmds/dumpstate/dumpstate.c

index f142095..1fbcef6 100644 (file)
@@ -438,6 +438,12 @@ int main(int argc, char *argv[]) {
         }
     }
 
+    // If we are going to use a socket, do it as early as possible
+    // to avoid timeouts from bugreport.
+    if (use_socket) {
+        redirect_to_socket(stdout, "dumpstate");
+    }
+
     /* open the vibrator before dropping root */
     FILE *vibrator = 0;
     if (do_vibrate) {
@@ -504,9 +510,7 @@ int main(int argc, char *argv[]) {
     char path[PATH_MAX], tmp_path[PATH_MAX];
     pid_t gzip_pid = -1;
 
-    if (use_socket) {
-        redirect_to_socket(stdout, "dumpstate");
-    } else if (use_outfile) {
+    if (!use_socket && use_outfile) {
         strlcpy(path, use_outfile, sizeof(path));
         if (do_add_date) {
             char date[80];