1) something like systemd starts a process in a cgroup, to limit memory usage
2) it disables the kernel OOM killer, and expects to
receive notification itself and kills the offending process
3) systemd crashes? This it can no longer process the
notifications, so you have a child process which is at
the memory limit but not killed.
This is a great example of why an init system should be as simple as possible and not die under any circumstance :) Why would your init system die? If you something like daemontools, they are designed to not even allocate memory after startup, because that could fail.Was she talking about systemd? Which process in systemd does the killing? Is it systemd-nspawn or something? (I'm not using systemd now.)