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

Commit ce862df9 authored by Suren Baghdasaryan's avatar Suren Baghdasaryan
Browse files

lmkd: Fix kill failure handling



When lmkd fails to kill it should log the error, remove the process record
and exit immediately.

Bug: 74119935
Test: lmkd_unit_test
Change-Id: I26b0fd873eeed325f7dd56097ec31abc0d63f3a1
Signed-off-by: default avatarSuren Baghdasaryan <surenb@google.com>
parent c67350bc
Loading
Loading
Loading
Loading
+19 −18
Original line number Diff line number Diff line
@@ -1793,6 +1793,14 @@ static int kill_one_process(struct proc* procp, int min_oom_score, const char *r
    /* CAP_KILL required */
    r = kill(pid, SIGKILL);

    TRACE_KILL_END();

    if (r) {
        ALOGE("kill(%d): errno=%d", pid, errno);
        /* Delete process record even when we fail to kill so that we don't get stuck on it */
        goto out;
    }

    set_process_group_and_prio(pid, SP_FOREGROUND, ANDROID_PRIORITY_HIGHEST);

    inc_killcnt(procp->oomadj);
@@ -1804,14 +1812,8 @@ static int kill_one_process(struct proc* procp, int min_oom_score, const char *r
              uid, procp->oomadj, tasksize * page_k);
    }

    TRACE_KILL_END();

    last_killed_pid = pid;

    if (r) {
        ALOGE("kill(%d): errno=%d", pid, errno);
        goto out;
    } else {
#ifdef LMKD_LOG_STATS
    if (memory_stat_parse_result == 0) {
        stats_write_lmk_kill_occurred(log_ctx, LMK_KILL_OCCURRED, uid, taskname,
@@ -1825,7 +1827,6 @@ static int kill_one_process(struct proc* procp, int min_oom_score, const char *r
    }
#endif
    result = tasksize;
    }

out:
    /*