Subject: [PATCH] daemon: Change default ‘timeout’ and ‘max-silent-time’ values.
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Cc: Ludovic Courtès <[email-masked]>
Date: Sun, 17 Dec 2023 15:35:24 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Having a timeout seems generally preferable as it makes sure build slots
are not kept busy for no good reason (few package builds, if any, are
expected to exceed these values).

* nix/libstore/globals.cc (Settings::Settings): Change ‘maxSilentTime’
and ‘buildTimeout’.
* gnu/services/base.scm (<guix-configuration>)[max-silent-time]
[timeout]: Change default values.
* doc/guix.texi (Invoking guix-daemon, Base Services): Adjust
accordingly.

Change-Id: I25c50893f3f7fcca451b8f093d9d4d1a15fa58d8
---
 doc/guix.texi           | 8 ++++----
 gnu/services/base.scm   | 4 ++--
 nix/libstore/globals.cc | 4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

Hi!

I was pretty sure these were the default values already and was shocked to
discover that this was not the case.

Thoughts?  Objections?

Ludo'.

diff --git a/doc/guix.texi b/doc/guix.texi
index e61a893af9..5f44a78f90 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -1799,7 +1799,7 @@ Invoking guix-daemon
 When the build or substitution process remains silent for more than
 @var{seconds}, terminate it and report a build failure.
 
-The default value is @code{0}, which disables the timeout.
+The default value is @code{3600} (one hour).
 
 The value specified here can be overridden by clients (@pxref{Common
 Build Options, @option{--max-silent-time}}).
@@ -1808,7 +1808,7 @@ Invoking guix-daemon
 Likewise, when the build or substitution process lasts for more than
 @var{seconds}, terminate it and report a build failure.
 
-The default value is @code{0}, which disables the timeout.
+The default value is 24 hours.
 
 The value specified here can be overridden by clients (@pxref{Common
 Build Options, @option{--timeout}}).
@@ -19384,8 +19384,8 @@ Base Services
 might want to turn it off for instance in a virtual machine that does
 not need it and where the extra boot time is a problem.
 
-@item @code{max-silent-time} (default: @code{0})
-@itemx @code{timeout} (default: @code{0})
+@item @code{max-silent-time} (default: @code{3600})
+@itemx @code{timeout} (default: @code{(* 3600 24)})
 The number of seconds of silence and the number of seconds of activity,
 respectively, after which a build process times out.  A value of zero
 disables the timeout.
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 6539bfd6ce..60388a22dd 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1798,9 +1798,9 @@ (define-record-type* <guix-configuration>
   (chroot-directories guix-configuration-chroot-directories ;list of file-like/strings
                       (default '()))
   (max-silent-time  guix-configuration-max-silent-time ;integer
-                    (default 0))
+                    (default 3600))
   (timeout          guix-configuration-timeout    ;integer
-                    (default 0))
+                    (default (* 3600 24)))
   (log-compression  guix-configuration-log-compression
                     (default 'gzip))
   (discover?        guix-configuration-discover?
diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc
index d4f9a46a74..89add1f107 100644
--- a/nix/libstore/globals.cc
+++ b/nix/libstore/globals.cc
@@ -32,8 +32,8 @@ Settings::Settings()
     buildCores = 1;
     readOnlyMode = false;
     thisSystem = SYSTEM;
-    maxSilentTime = 0;
-    buildTimeout = 0;
+    maxSilentTime = 3600;
+    buildTimeout = 3600 * 24;
     useBuildHook = true;
     printBuildTrace = false;
     multiplexedBuildOutput = false;

base-commit: b681e339fa37f2a26763458ee56b31af1d6a7ec5
-- 
2.41.0