Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea595ba2 authored by Bart Van Assche's avatar Bart Van Assche
Browse files

init: Log more information if stopping times out



The newly logged information includes the pending signals bitmask (SigPnd).
That information allows to determine whether kill() did not deliver a
signal or whether SIGCHLD has not been processed in time. This patch is
expected to help with root-causing b/254878413.

Bug: 254878413
Change-Id: Id33d1fb724163f8e5d4b3edfeb6c4be5321c0d95
Signed-off-by: default avatarBart Van Assche <bvanassche@google.com>
parent 874448f4
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include <unistd.h>

#include <android-base/chrono_utils.h>
#include <android-base/file.h>
#include <android-base/logging.h>
#include <android-base/scopeguard.h>
#include <android-base/stringprintf.h>
@@ -36,6 +37,7 @@

using android::base::boot_clock;
using android::base::make_scope_guard;
using android::base::ReadFileToString;
using android::base::StringPrintf;
using android::base::Timer;

@@ -132,6 +134,11 @@ void WaitToBeReaped(const std::vector<pid_t>& pids, std::chrono::milliseconds ti
    }
    LOG(INFO) << "Waiting for " << pids.size() << " pids to be reaped took " << t << " with "
              << alive_pids.size() << " of them still running";
    for (pid_t pid : pids) {
        std::string status = "(no-such-pid)";
        ReadFileToString(StringPrintf("/proc/%d/status", pid), &status);
        LOG(INFO) << "Still running: " << pid << ' ' << status;
    }
}

}  // namespace init