On an embedded system, there are 2 tmpfs mounts. 1GB mounted to /tmp and another 1GB mounted to /run, total RAM is 8GB. No swap is used.
If one of those reaches its limits, system resets itself.
i.e. both of the following verification causes a reset.
cat /dev/urandom > /tmp/foo or cat /dev/urandom > /run/foo
I would have expected either OOM-Killer and/or cgroups would kick in and avoid such issues.
What should have been mis-configured on kernel side and systemd side?
Edit: another test shows OOM-killer trying to do its job
~ # dd if=/dev/urandom of=/tmp/somefile bs=1M count=950 ; rm /tmp/somefile
Killed
~ # free
total used free shared buff/cache available
Mem: 11789532 2487424 8363864 29148 1208604 9961408
Swap: 0 0 0
--> reset kicks in here.