From ed9354fc846895dc53397fbb5323bef00b3a3834 Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Wed, 1 Oct 2014 17:35:01 -0700 Subject: [PATCH] Accept socket connection before tracing. 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 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cmds/dumpstate/dumpstate.c b/cmds/dumpstate/dumpstate.c index f142095c7..1fbcef6cf 100644 --- a/cmds/dumpstate/dumpstate.c +++ b/cmds/dumpstate/dumpstate.c @@ -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];