pub fn resolve_memory_exhaustion(
exit_code: Option<i32>,
log_tail: Option<&str>,
oom_killed: Option<bool>,
oom_kills: Option<u64>,
) -> Option<MemoryExhaustion>Expand description
Decide whether an execution died of memory exhaustion, and say why.
Only abnormal exits are explained: a command that merely printed a fatal
marker (an rg dump, a quoted incident log) and then succeeded is not a
memory failure. An observation, never a verdict (issue #151).
The container-wide OOM signals (State.OOMKilled, the cgroup oom_kill
counter) only count when the exit fits an OOM kill of the command itself:
a child OOM-killed under a command that later exits 1 is not the reason the
command ended (issue #180).