GNU bug report logs -
#67733
[PATCH] daemon: Sacrifice builders on OOM.
Previous Next
To reply to this bug, email your comments to 67733 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#67733
; Package
guix-patches
.
(Sat, 09 Dec 2023 21:23:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Tobias Geerinckx-Rice <me <at> tobias.gr>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Sat, 09 Dec 2023 21:23:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* nix/libstore/build.cc (DerivationGoal::runChild):
Maximise our OOM score adjustment.
Change-Id: I418c763b499ca16e1ffe3c6033319112b9744f51
---
nix/libstore/build.cc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index e8259aa4e8..9241418abc 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -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. */
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#67733
; Package
guix-patches
.
(Sat, 09 Dec 2023 21:27:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 67733 <at> debbugs.gnu.org (full text, mbox):
* nix/libstore/build.cc (DerivationGoal::runChild):
Maximise our OOM score adjustment.
Change-Id: I418c763b499ca16e1ffe3c6033319112b9744f51
---
v2: Tabs tabs tabs tabs.
nix/libstore/build.cc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index e8259aa4e8..54555b92d7 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -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. */
base-commit: e796c68025aca372ff8e16eb0c235155af92f743
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#67733
; Package
guix-patches
.
(Sat, 09 Dec 2023 21:33:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 67733 <at> debbugs.gnu.org (full text, mbox):
* nix/libstore/build.cc (DerivationGoal::runChild):
Maximise our OOM score adjustment.
Change-Id: I418c763b499ca16e1ffe3c6033319112b9744f51
---
v3: In my defens, I'm on a fone.
nix/libstore/build.cc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index e8259aa4e8..54555b92d7 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -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. */
base-commit: e796c68025aca372ff8e16eb0c235155af92f743
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#67733
; Package
guix-patches
.
(Sun, 10 Dec 2023 21:52:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 67733 <at> debbugs.gnu.org (full text, mbox):
Hullo!
Tobias Geerinckx-Rice <me <at> tobias.gr> skribis:
> * nix/libstore/build.cc (DerivationGoal::runChild):
> Maximise our OOM score adjustment.
>
> Change-Id: I418c763b499ca16e1ffe3c6033319112b9744f51
> ---
>
> v3: In my defens, I'm on a fone.
Nooo, you’re a hero.
> + /* 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(); }
Sounds like a good idea. LGTM!
Ludo’.
This bug report was last modified 145 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.