guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: hydra: Set ‘GC_RETRY_SIGNALS=0’ for ‘guix publish


From: Ludovic Courtès
Subject: branch master updated: hydra: Set ‘GC_RETRY_SIGNALS=0’ for ‘guix publish’.
Date: Tue, 03 Dec 2024 12:24:13 -0500

This is an automated email from the git hooks/post-receive script.

civodul pushed a commit to branch master
in repository maintenance.

The following commit(s) were added to refs/heads/master by this push:
     new 620a8269 hydra: Set ‘GC_RETRY_SIGNALS=0’ for ‘guix publish’.
620a8269 is described below

commit 620a826903c5aa46fa892b07e7ccda6d03420ca4
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Tue Dec 3 18:23:16 2024 +0100

    hydra: Set ‘GC_RETRY_SIGNALS=0’ for ‘guix publish’.
    
    Works around <https://issues.guix.gnu.org/74632>.
    
    * hydra/modules/sysadmin/services.scm (wrapped-guix): New procedure.
    (frontend-services): Use it.
---
 hydra/modules/sysadmin/services.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/hydra/modules/sysadmin/services.scm 
b/hydra/modules/sysadmin/services.scm
index c501037e..fa67d59f 100644
--- a/hydra/modules/sysadmin/services.scm
+++ b/hydra/modules/sysadmin/services.scm
@@ -660,6 +660,23 @@ to a selected directory.")
             (specifications (cuirass-specs branches systems))
             (parameters "/etc/cuirass.scm"))))
 
+(define (wrapped-guix guix)
+  "Wrap GUIX such that the 'GC_RETRY_SIGNALS' environment variable is set to
+\"0\".  This is a workaround for <https://issues.guix.gnu.org/74632>."
+  (let ((wrapper (program-file "guix"
+                               #~(begin
+                                   (setenv "GC_RETRY_SIGNALS" "0")
+                                   (apply execl #$(file-append guix 
"/bin/guix")
+                                          #$(file-append guix "/bin/guix")
+                                          (cdr (command-line)))))))
+    (computed-file "guix-no-retry-signals"
+                   (with-imported-modules '((guix build utils))
+                     #~(begin
+                         (use-modules (guix build utils))
+                         (mkdir-p (string-append #$output "/bin"))
+                         (copy-file #$wrapper
+                                    (string-append #$output "/bin/guix")))))))
+
 (define* (frontend-services sysadmins #:key
                             (gc-threshold (* 800 GiB))
                             nginx-config-file
@@ -691,6 +708,12 @@ to a selected directory.")
          ;; The Web service.
          (service guix-publish-service-type
                   (guix-publish-configuration
+
+                   ;; XXX: Work around <https://issues.guix.gnu.org/74632>:
+                   ;; occasional "Signals delivery fails constantly" from
+                   ;; libgc under high load.
+                   (guix (wrapped-guix guix))
+
                    (port 3000)
                    (cache "/var/cache/guix/publish")
                    (ttl nar-ttl)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]