summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Salyzyn <salyzyn@google.com>2014-07-29 23:10:11 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-07-29 22:52:28 +0000
commitcddc97cb3a927d179a42e0fec77f0d267fcd74d1 (patch)
tree6513701c73a7eea5760b3f5bcc8e7271fe9668a1
parent47a123895b11702e25ea217860ad173434ebfa6c (diff)
parent45ae446cab9cfc9b6100d91b1a37c6ad82e0cb99 (diff)
downloadsystem_core-cddc97cb3a927d179a42e0fec77f0d267fcd74d1.zip
system_core-cddc97cb3a927d179a42e0fec77f0d267fcd74d1.tar.gz
system_core-cddc97cb3a927d179a42e0fec77f0d267fcd74d1.tar.bz2
Merge "debuggerd: tombstone: suppress logger request for logd process"
-rwxr-xr-xdebuggerd/tombstone.cpp10
-rw-r--r--debuggerd/utility.h4
2 files changed, 13 insertions, 1 deletions
diff --git a/debuggerd/tombstone.cpp b/debuggerd/tombstone.cpp
index f41166b..2b9d093 100755
--- a/debuggerd/tombstone.cpp
+++ b/debuggerd/tombstone.cpp
@@ -210,6 +210,12 @@ static void dump_thread_info(log_t* log, pid_t pid, pid_t tid) {
}
}
}
+ // Blacklist logd, logd.reader, logd.writer, logd.auditd, logd.control ...
+ static const char logd[] = "logd";
+ if (!strncmp(threadname, logd, sizeof(logd) - 1)
+ && (!threadname[sizeof(logd) - 1] || (threadname[sizeof(logd) - 1] == '.'))) {
+ log->should_retrieve_logcat = false;
+ }
char procnamebuf[1024];
char* procname = NULL;
@@ -450,6 +456,10 @@ static void dump_log_file(
bool first = true;
struct logger_list* logger_list;
+ if (!log->should_retrieve_logcat) {
+ return;
+ }
+
logger_list = android_logger_list_open(
android_name_to_log_id(filename), O_RDONLY | O_NONBLOCK, tail, pid);
diff --git a/debuggerd/utility.h b/debuggerd/utility.h
index 31684ce..82413b8 100644
--- a/debuggerd/utility.h
+++ b/debuggerd/utility.h
@@ -46,9 +46,11 @@ struct log_t{
pid_t crashed_tid;
// The tid of the thread we are currently working with.
pid_t current_tid;
+ // logd daemon crash, can block asking for logcat data, allow suppression.
+ bool should_retrieve_logcat;
log_t()
- : tfd(-1), amfd(-1), crashed_tid(-1), current_tid(-1) {}
+ : tfd(-1), amfd(-1), crashed_tid(-1), current_tid(-1), should_retrieve_logcat(true) {}
};
// List of types of logs to simplify the logging decision in _LOG