Loading cmds/incidentd/src/Section.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -864,11 +864,16 @@ status_t TombstoneSection::BlockingCall(int pipeWriteFd) const { // Read from the pipe concurrently to avoid blocking the child. // Read from the pipe concurrently to avoid blocking the child. FdBuffer buffer; FdBuffer buffer; err = buffer.readFully(dumpPipe.readFd().get()); 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) { if (err != NO_ERROR) { ALOGW("[%s] failed to read stack dump: %d", this->name.string(), err); ALOGW("[%s] failed to read stack dump: %d", this->name.string(), err); dumpPipe.readFd().reset(); dumpPipe.readFd().reset(); break; 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 dump = std::make_unique<char[]>(buffer.size()); auto iterator = buffer.data(); auto iterator = buffer.data(); Loading Loading
cmds/incidentd/src/Section.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -864,11 +864,16 @@ status_t TombstoneSection::BlockingCall(int pipeWriteFd) const { // Read from the pipe concurrently to avoid blocking the child. // Read from the pipe concurrently to avoid blocking the child. FdBuffer buffer; FdBuffer buffer; err = buffer.readFully(dumpPipe.readFd().get()); 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) { if (err != NO_ERROR) { ALOGW("[%s] failed to read stack dump: %d", this->name.string(), err); ALOGW("[%s] failed to read stack dump: %d", this->name.string(), err); dumpPipe.readFd().reset(); dumpPipe.readFd().reset(); break; 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 dump = std::make_unique<char[]>(buffer.size()); auto iterator = buffer.data(); auto iterator = buffer.data(); Loading