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

Previous Next

Package: guix-patches;

Reported by: Christopher Baines <mail <at> cbaines.net>

Date: Thu, 10 Nov 2022 14:10:02 UTC

Severity: normal

Tags: patch

Done: Christopher Baines <mail <at> cbaines.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 59171 in the body.
You can then email your comments to 59171 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#59171; Package guix-patches. (Thu, 10 Nov 2022 14:10:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Christopher Baines <mail <at> cbaines.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 10 Nov 2022 14:10:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Christopher Baines <mail <at> cbaines.net>
To: guix-patches <at> gnu.org
Subject: [PATCH] services: guix-build-coordinator: Remove duplicate log
 timestamp.
Date: Thu, 10 Nov 2022 14:08:52 +0000
* 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(-)

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
-- 
2.38.1





Information forwarded to guix-patches <at> gnu.org:
bug#59171; Package guix-patches. (Mon, 14 Nov 2022 17:27:02 GMT) Full text and rfc822 format available.

Message #8 received at 59171 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Christopher Baines <mail <at> cbaines.net>
Cc: 59171 <at> debbugs.gnu.org
Subject: Re: bug#59171: [PATCH] services: guix-build-coordinator: Remove
 duplicate log timestamp.
Date: Mon, 14 Nov 2022 18:26:10 +0100
Hi,

Christopher Baines <mail <at> 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’.




Reply sent to Christopher Baines <mail <at> cbaines.net>:
You have taken responsibility. (Sun, 20 Nov 2022 12:08:02 GMT) Full text and rfc822 format available.

Notification sent to Christopher Baines <mail <at> cbaines.net>:
bug acknowledged by developer. (Sun, 20 Nov 2022 12:08:02 GMT) Full text and rfc822 format available.

Message #13 received at 59171-done <at> debbugs.gnu.org (full text, mbox):

From: Christopher Baines <mail <at> cbaines.net>
To: 59171-done <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: Re: bug#59171: [PATCH] services: guix-build-coordinator: Remove
 duplicate log timestamp.
Date: Sun, 20 Nov 2022 12:06:31 +0000
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> 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
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 18 Dec 2022 12:24:11 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 240 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.