From be0c1af6f03a9a73a7657f0f572d385bd4dadd05 Mon Sep 17 00:00:00 2001 From: Josh Gao <jmgao@google.com> Date: Thu, 6 Sep 2018 13:00:57 -0700 Subject: [PATCH] debuggerd_client: improve error logging. system_server is sometimes failing to dump with the following error: libdebuggerd_client: received packet of unexpected length from tombstoned: expected 128, received -1 Improve the logging to try to figure out what's going on. Bug: http://b/114139908 Test: treehugger Change-Id: Iee1bdc0891b9fc7bd80a330495ec22a530febddb --- debuggerd/client/debuggerd_client.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/debuggerd/client/debuggerd_client.cpp b/debuggerd/client/debuggerd_client.cpp index cb7cbbe0fe..77f3515a4f 100644 --- a/debuggerd/client/debuggerd_client.cpp +++ b/debuggerd/client/debuggerd_client.cpp @@ -143,12 +143,16 @@ bool debuggerd_trigger_dump(pid_t pid, DebuggerdDumpType dump_type, unsigned int ssize_t rc = TEMP_FAILURE_RETRY(recv(set_timeout(sockfd.get()), &response, sizeof(response), MSG_TRUNC)); if (rc == 0) { - LOG(ERROR) << "libdebuggerd_client: failed to read response from tombstoned: timeout reached?"; + LOG(ERROR) << "libdebuggerd_client: failed to read initial response from tombstoned: " + << "timeout reached?"; + return false; + } else if (rc == -1) { + PLOG(ERROR) << "libdebuggerd_client: failed to read initial response from tombstoned"; return false; } else if (rc != sizeof(response)) { - LOG(ERROR) - << "libdebuggerd_client: received packet of unexpected length from tombstoned: expected " - << sizeof(response) << ", received " << rc; + LOG(ERROR) << "libdebuggerd_client: received packet of unexpected length from tombstoned while " + "reading initial response: expected " + << sizeof(response) << ", received " << rc; return false; } @@ -164,12 +168,16 @@ bool debuggerd_trigger_dump(pid_t pid, DebuggerdDumpType dump_type, unsigned int rc = TEMP_FAILURE_RETRY(recv(set_timeout(sockfd.get()), &response, sizeof(response), MSG_TRUNC)); if (rc == 0) { - LOG(ERROR) << "libdebuggerd_client: failed to read response from tombstoned: timeout reached?"; + LOG(ERROR) << "libdebuggerd_client: failed to read status response from tombstoned: " + "timeout reached?"; + return false; + } else if (rc == -1) { + PLOG(ERROR) << "libdebuggerd_client: failed to read status response from tombstoned"; return false; } else if (rc != sizeof(response)) { - LOG(ERROR) - << "libdebuggerd_client: received packet of unexpected length from tombstoned: expected " - << sizeof(response) << ", received " << rc; + LOG(ERROR) << "libdebuggerd_client: received packet of unexpected length from tombstoned while " + "reading confirmation response: expected " + << sizeof(response) << ", received " << rc; return false; } -- GitLab