Merge "Preventing zombie process creation." into pi-dev

This commit is contained in:
android-build-team Robot
2018-05-02 20:58:14 +00:00
committed by Android (Google) Code Review

View File

@@ -902,11 +902,16 @@ status_t TombstoneSection::BlockingCall(int pipeWriteFd) const {
// Read from the pipe concurrently to avoid blocking the child.
FdBuffer buffer;
err = buffer.readFully(dumpPipe.readFd().get());
// Wait on the child to avoid it becoming a zombie process.
status_t cStatus = wait_child(child);
if (err != NO_ERROR) {
ALOGW("TombstoneSection '%s' failed to read stack dump: %d", this->name.string(), err);
dumpPipe.readFd().reset();
break;
}
if (cStatus != NO_ERROR) {
ALOGE("TombstoneSection '%s' child had an issue: %s\n", this->name.string(), strerror(-cStatus));
}
auto dump = std::make_unique<char[]>(buffer.size());
auto iterator = buffer.data();