libmemunreachable: fix long timeout on error
The collection thread should unblock the parent when it fails in order
to prevent a 100 second timeout delay. Also reduce the timeout to 30
seconds, and fix a few log messages.
Bug: 27208635
Change-Id: I47f9ce4f645c453810fec57bef557c32a665eefb
(cherry picked from commit b1b7923efe
)
This commit is contained in:
parent
7add50d820
commit
de42af013f
|
@ -224,16 +224,19 @@ bool GetUnreachableMemory(UnreachableMemoryInfo& info, size_t limit) {
|
|||
|
||||
// ptrace all the threads
|
||||
if (!thread_capture.CaptureThreads()) {
|
||||
continue_parent_sem.Post();
|
||||
return 1;
|
||||
}
|
||||
|
||||
// collect register contents and stacks
|
||||
if (!thread_capture.CapturedThreadInfo(thread_info)) {
|
||||
continue_parent_sem.Post();
|
||||
return 1;
|
||||
}
|
||||
|
||||
// snapshot /proc/pid/maps
|
||||
if (!ProcessMappings(parent_pid, mappings)) {
|
||||
continue_parent_sem.Post();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -306,7 +309,7 @@ bool GetUnreachableMemory(UnreachableMemoryInfo& info, size_t limit) {
|
|||
|
||||
// Wait for the collection thread to signal that it is ready to fork the
|
||||
// heap walker process.
|
||||
continue_parent_sem.Wait(100s);
|
||||
continue_parent_sem.Wait(30s);
|
||||
|
||||
// Re-enable malloc so the collection thread can fork.
|
||||
}
|
||||
|
@ -347,7 +350,7 @@ std::string Leak::ToString(bool log_contents) const {
|
|||
std::ostringstream oss;
|
||||
|
||||
oss << " " << std::dec << size;
|
||||
oss << " bytes at ";
|
||||
oss << " bytes unreachable at ";
|
||||
oss << std::hex << begin;
|
||||
oss << std::endl;
|
||||
|
||||
|
@ -405,7 +408,7 @@ std::string UnreachableMemoryInfo::ToString(bool log_contents) const {
|
|||
std::string GetUnreachableMemoryString(bool log_contents, size_t limit) {
|
||||
UnreachableMemoryInfo info;
|
||||
if (!GetUnreachableMemory(info, limit)) {
|
||||
return "Failed to get unreachable memory";
|
||||
return "Failed to get unreachable memory\n";
|
||||
}
|
||||
|
||||
return info.ToString(log_contents);
|
||||
|
|
Loading…
Reference in New Issue