diff mbox series

[bug#59171] services: guix-build-coordinator: Remove duplicate log timestamp.

Message ID 20221110140852.24447-1-mail@cbaines.net
State New
Headers show
Series [bug#59171] services: guix-build-coordinator: Remove duplicate log timestamp. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success
cbaines/issue success View issue

Commit Message

Christopher Baines Nov. 10, 2022, 2:08 p.m. UTC
* gnu/services/guix.scm (guix-build-coordinator-shepherd-services,
guix-build-coordinator-agent-shepherd-services,
guix-build-coordinator-queue-builds-shepherd-services): Set
%current-logfile-date-format to "".
---
 gnu/services/guix.scm | 246 +++++++++++++++++++++++-------------------
 1 file changed, 134 insertions(+), 112 deletions(-)

Comments

Ludovic Courtès Nov. 14, 2022, 5:26 p.m. UTC | #1
Hi,

Christopher Baines <mail@cbaines.net> skribis:

> * gnu/services/guix.scm (guix-build-coordinator-shepherd-services,
> guix-build-coordinator-agent-shepherd-services,
> guix-build-coordinator-queue-builds-shepherd-services): Set
> %current-logfile-date-format to "".

[...]

> +      (start #~(lambda args
> +                 (parameterize ((%current-logfile-date-format ""))
> +                   (apply
> +                    (make-forkexec-constructor
> +                     (list #$(make-guix-build-coordinator-start-script
> +                              database-uri-string
> +                              allocation-strategy
> +                              "/var/run/guix-build-coordinator/pid"
> +                              package
> +                              #:agent-communication-uri-string
> +                              agent-communication-uri-string
> +                              #:client-communication-uri-string
> +                              client-communication-uri-string
> +                              #:hooks hooks
> +                              #:parallel-hooks parallel-hooks
> +                              #:guile guile))
> +                     #:user #$user
> +                     #:group #$group
> +                     #:pid-file "/var/run/guix-build-coordinator/pid"
> +                     ;; Allow time for migrations to run
> +                     #:pid-file-timeout 60
> +                     #:environment-variables
> +                     `(,(string-append
> +                         "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
> +                       "LC_ALL=en_US.utf8"
> +                       "PATH=/run/current-system/profile/bin") ; for hooks
> +                     #:log-file "/var/log/guix-build-coordinator/coordinator.log")
> +                    args))))

It’s not pretty but I don’t have anything else to offer.

Perhaps you can make it slightly less verbose by writing it like this:

  (start #~(lambda ()
             ;; Arrange so that shepherd does not add a timestamp to
             ;; the logs produced by the Coordinator.
             (parameterize …
               (fork+exec-command (list …) …))))

There are other services in a similar situation.  I wonder what we
should recommend.

Ludo’.
Christopher Baines Nov. 20, 2022, 12:06 p.m. UTC | #2
Ludovic Courtès <ludo@gnu.org> writes:

> Perhaps you can make it slightly less verbose by writing it like this:
>
>   (start #~(lambda ()
>              ;; Arrange so that shepherd does not add a timestamp to
>              ;; the logs produced by the Coordinator.
>              (parameterize …
>                (fork+exec-command (list …) …))))
>
> There are other services in a similar situation.  I wonder what we
> should recommend.

Thanks, I've gone ahead and pushed this with the tweak suggested above
as dafab37110677e2968deed817ba4872fe5a8f07c.

Chris
diff mbox series

Patch

diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index 907824ac61..cc31ec271b 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -333,31 +333,38 @@  (define (guix-build-coordinator-shepherd-services config)
       (documentation "Guix Build Coordinator")
       (provision '(guix-build-coordinator))
       (requirement '(networking))
-      (start #~(make-forkexec-constructor
-                (list #$(make-guix-build-coordinator-start-script
-                         database-uri-string
-                         allocation-strategy
-                         "/var/run/guix-build-coordinator/pid"
-                         package
-                         #:agent-communication-uri-string
-                         agent-communication-uri-string
-                         #:client-communication-uri-string
-                         client-communication-uri-string
-                         #:hooks hooks
-                         #:parallel-hooks parallel-hooks
-                         #:guile guile))
-                #:user #$user
-                #:group #$group
-                #:pid-file "/var/run/guix-build-coordinator/pid"
-                ;; Allow time for migrations to run
-                #:pid-file-timeout 60
-                #:environment-variables
-                `(,(string-append
-                    "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
-                  "LC_ALL=en_US.utf8"
-                  "PATH=/run/current-system/profile/bin") ; for hooks
-                #:log-file "/var/log/guix-build-coordinator/coordinator.log"))
-      (stop #~(make-kill-destructor))))))
+      (start #~(lambda args
+                 (parameterize ((%current-logfile-date-format ""))
+                   (apply
+                    (make-forkexec-constructor
+                     (list #$(make-guix-build-coordinator-start-script
+                              database-uri-string
+                              allocation-strategy
+                              "/var/run/guix-build-coordinator/pid"
+                              package
+                              #:agent-communication-uri-string
+                              agent-communication-uri-string
+                              #:client-communication-uri-string
+                              client-communication-uri-string
+                              #:hooks hooks
+                              #:parallel-hooks parallel-hooks
+                              #:guile guile))
+                     #:user #$user
+                     #:group #$group
+                     #:pid-file "/var/run/guix-build-coordinator/pid"
+                     ;; Allow time for migrations to run
+                     #:pid-file-timeout 60
+                     #:environment-variables
+                     `(,(string-append
+                         "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                       "LC_ALL=en_US.utf8"
+                       "PATH=/run/current-system/profile/bin") ; for hooks
+                     #:log-file "/var/log/guix-build-coordinator/coordinator.log")
+                    args))))
+      (stop #~(make-kill-destructor))
+      (modules
+       `((shepherd comm)
+         ,@%default-modules))))))
 
 (define (guix-build-coordinator-activation config)
   #~(begin
@@ -419,61 +426,69 @@  (define (guix-build-coordinator-agent-shepherd-services config)
       (documentation "Guix Build Coordinator Agent")
       (provision '(guix-build-coordinator-agent))
       (requirement '(networking))
-      (start #~(make-forkexec-constructor
-                (list #$(file-append package "/bin/guix-build-coordinator-agent")
-                      #$(string-append "--coordinator=" coordinator)
-                      #$@(match authentication
-                           (($ <guix-build-coordinator-agent-password-auth>
-                               uuid password)
-                            #~(#$(string-append "--uuid=" uuid)
-                               #$(string-append "--password=" password)))
-                           (($ <guix-build-coordinator-agent-password-file-auth>
-                               uuid password-file)
-                            #~(#$(string-append "--uuid=" uuid)
-                               #$(string-append "--password-file="
-                                                password-file)))
-                           (($ <guix-build-coordinator-agent-dynamic-auth>
-                               agent-name token)
-                            #~(#$(string-append "--name=" agent-name)
-                               #$(string-append "--dynamic-auth-token=" token)))
-                           (($
-                             <guix-build-coordinator-agent-dynamic-auth-with-file>
-                             agent-name token-file)
-                            #~(#$(string-append "--name=" agent-name)
-                               #$(string-append "--dynamic-auth-token-file="
-                                                token-file))))
-                      #$(simple-format #f "--max-parallel-builds=~A"
-                                       max-parallel-builds)
-                      #$@(if max-allocated-builds
-                             #~(#$(simple-format #f "--max-allocated-builds=~A"
-                                                 max-allocated-builds))
-                             #~())
-                      #$@(if max-1min-load-average
-                             #~(#$(simple-format #f "--max-1min-load-average=~A"
-                                                 max-1min-load-average))
-                             #~())
-                      #$@(if derivation-substitute-urls
-                             #~(#$(string-append
-                                   "--derivation-substitute-urls="
+      (start
+       #~(lambda args
+           (parameterize ((%current-logfile-date-format ""))
+             (apply
+              make-forkexec-constructor
+              (list #$(file-append package "/bin/guix-build-coordinator-agent")
+                    #$(string-append "--coordinator=" coordinator)
+                    #$@(match authentication
+                         (($ <guix-build-coordinator-agent-password-auth>
+                             uuid password)
+                          #~(#$(string-append "--uuid=" uuid)
+                             #$(string-append "--password=" password)))
+                         (($ <guix-build-coordinator-agent-password-file-auth>
+                             uuid password-file)
+                          #~(#$(string-append "--uuid=" uuid)
+                             #$(string-append "--password-file="
+                                              password-file)))
+                         (($ <guix-build-coordinator-agent-dynamic-auth>
+                             agent-name token)
+                          #~(#$(string-append "--name=" agent-name)
+                             #$(string-append "--dynamic-auth-token=" token)))
+                         (($
+                           <guix-build-coordinator-agent-dynamic-auth-with-file>
+                           agent-name token-file)
+                          #~(#$(string-append "--name=" agent-name)
+                             #$(string-append "--dynamic-auth-token-file="
+                                              token-file))))
+                    #$(simple-format #f "--max-parallel-builds=~A"
+                                     max-parallel-builds)
+                    #$@(if max-allocated-builds
+                           #~(#$(simple-format #f "--max-allocated-builds=~A"
+                                               max-allocated-builds))
+                           #~())
+                    #$@(if max-1min-load-average
+                           #~(#$(simple-format #f "--max-1min-load-average=~A"
+                                               max-1min-load-average))
+                           #~())
+                    #$@(if derivation-substitute-urls
+                           #~(#$(string-append
+                                 "--derivation-substitute-urls="
                                  (string-join derivation-substitute-urls " ")))
-                             #~())
-                      #$@(if non-derivation-substitute-urls
-                             #~(#$(string-append
-                                   "--non-derivation-substitute-urls="
-                                   (string-join non-derivation-substitute-urls " ")))
-                             #~())
-                      #$@(map (lambda (system)
-                                (string-append "--system=" system))
-                              (or systems '())))
-                #:user #$user
-                #:environment-variables
-                `(,(string-append
-                    "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
-                  ;; XDG_CACHE_HOME is used by Guix when caching narinfo files
-                  "XDG_CACHE_HOME=/var/cache/guix-build-coordinator-agent"
-                  "LC_ALL=en_US.utf8")
-                #:log-file "/var/log/guix-build-coordinator/agent.log"))
-      (stop #~(make-kill-destructor))))))
+                           #~())
+                    #$@(if non-derivation-substitute-urls
+                           #~(#$(string-append
+                                 "--non-derivation-substitute-urls="
+                                 (string-join non-derivation-substitute-urls " ")))
+                           #~())
+                    #$@(map (lambda (system)
+                              (string-append "--system=" system))
+                            (or systems '())))
+              #:user #$user
+              #:environment-variables
+              `(,(string-append
+                  "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                ;; XDG_CACHE_HOME is used by Guix when caching narinfo files
+                "XDG_CACHE_HOME=/var/cache/guix-build-coordinator-agent"
+                "LC_ALL=en_US.utf8")
+              #:log-file "/var/log/guix-build-coordinator/agent.log")
+             args)))
+      (stop #~(make-kill-destructor))
+      (modules
+       `((shepherd comm)
+         ,@%default-modules))))))
 
 (define (guix-build-coordinator-agent-activation config)
   #~(begin
@@ -526,39 +541,46 @@  (define (guix-build-coordinator-queue-builds-shepherd-services config)
       (provision '(guix-build-coordinator-queue-builds))
       (requirement '(networking))
       (start
-       #~(make-forkexec-constructor
-          (list
-           #$(file-append
-              package
-              "/bin/guix-build-coordinator-queue-builds-from-guix-data-service")
-           #$(string-append "--coordinator=" coordinator)
-           #$@(map (lambda (system)
-                     (string-append "--system=" system))
-                   (or systems '()))
-           #$@(map (match-lambda
-                     ((system . target)
-                      (string-append "--system-and-target=" system "=" target)))
-                   (or systems-and-targets '()))
-           #$@(if guix-data-service
-                  #~(#$(string-append "--guix-data-service=" guix-data-service))
-                  #~())
-           #$@(if guix-data-service-build-server-id
-                  #~(#$(simple-format
-                        #f
-                        "--guix-data-service-build-server-id=~A"
-                        guix-data-service-build-server-id))
-                  #~())
-           #$@(if processed-commits-file
-                  #~(#$(string-append "--processed-commits-file="
-                                      processed-commits-file))
-                  #~()))
-          #:user #$user
-          #:environment-variables
-          `(,(string-append
-              "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
-            "LC_ALL=en_US.utf8")
-          #:log-file "/var/log/guix-build-coordinator/queue-builds.log"))
-      (stop #~(make-kill-destructor))))))
+       #~(lambda args
+           (parameterize ((%current-logfile-date-format ""))
+             (apply
+              (make-forkexec-constructor
+               (list
+                #$(file-append
+                   package
+                   "/bin/guix-build-coordinator-queue-builds-from-guix-data-service")
+                #$(string-append "--coordinator=" coordinator)
+                #$@(map (lambda (system)
+                          (string-append "--system=" system))
+                        (or systems '()))
+                #$@(map (match-lambda
+                          ((system . target)
+                           (string-append "--system-and-target=" system "=" target)))
+                        (or systems-and-targets '()))
+                #$@(if guix-data-service
+                       #~(#$(string-append "--guix-data-service=" guix-data-service))
+                       #~())
+                #$@(if guix-data-service-build-server-id
+                       #~(#$(simple-format
+                             #f
+                             "--guix-data-service-build-server-id=~A"
+                             guix-data-service-build-server-id))
+                       #~())
+                #$@(if processed-commits-file
+                       #~(#$(string-append "--processed-commits-file="
+                                           processed-commits-file))
+                       #~()))
+               #:user #$user
+               #:environment-variables
+               `(,(string-append
+                   "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
+                 "LC_ALL=en_US.utf8")
+               #:log-file "/var/log/guix-build-coordinator/queue-builds.log")
+              args))))
+      (stop #~(make-kill-destructor))
+      (modules
+       `((shepherd comm)
+         ,@%default-modules))))))
 
 (define (guix-build-coordinator-queue-builds-activation config)
   #~(begin