~ruther/guix-local

d993ed43b2bae8717437aa27d9d33fd223a6411f — Tobias Geerinckx-Rice 2 years ago 3803570
daemon: Sacrifice builders on OOM.

* nix/libstore/build.cc (DerivationGoal::runChild):
Maximise our OOM score adjustment.

Change-Id: I418c763b499ca16e1ffe3c6033319112b9744f51
1 files changed, 6 insertions(+), 0 deletions(-)

M nix/libstore/build.cc
M nix/libstore/build.cc => nix/libstore/build.cc +6 -0
@@ 2154,6 2154,12 @@ void DerivationGoal::runChild()
           determinism. */
        int cur = personality(0xffffffff);
        if (cur != -1) personality(cur | ADDR_NO_RANDOMIZE);

	/* Ask the kernel to eagerly kill us & our children if it runs out of
	   memory, regardless of blame, to preserve ‘real’ user data & state. */
	try {
	    writeFile("/proc/self/oom_score_adj", "1000"); // 100%
	} catch (...) { ignoreException(); }
#endif

        /* Fill in the environment. */