guix-commits
[Top][All Lists]
Advanced

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

[no subject]


From: Ludovic Courtès
Date: Thu, 16 Nov 2023 17:24:21 -0500 (EST)

branch: master
commit ba3ea7947ec67e9d9585e40a30d67dbd8115e73c
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Wed Nov 15 23:40:33 2023 +0100

    remote-worker: Better guard against server disconnections.
    
    Fixes <https://issues.guix.gnu.org/66980>.
    
    Fixes a bug whereby a worker fiber would exit due to an uncaught
    exception, typically when calling ‘finish’.
    
    * src/cuirass/scripts/remote-worker.scm (run-build): Add ‘else’ clause
    in ‘guard’ form.
---
 src/cuirass/scripts/remote-worker.scm | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/cuirass/scripts/remote-worker.scm 
b/src/cuirass/scripts/remote-worker.scm
index d0b4b66..8fa58b2 100644
--- a/src/cuirass/scripts/remote-worker.scm
+++ b/src/cuirass/scripts/remote-worker.scm
@@ -234,6 +234,13 @@ still be substituted."
       (guard (c ((store-protocol-error? c)
                  (log-info (G_ "~a: derivation `~a' build failed: ~a")
                            name drv (store-protocol-error-message c))
+                 (reply (build-failed-message drv local-publish-url)))
+                (else
+                 ;; We might get '&nar-error' or EPIPE when the 'cuirass
+                 ;; remote-server' process terminates prematurely.
+                 (log-error
+                  (G_ "~a: unexpected error while building '~a': ~s")
+                  name drv c)
                  (reply (build-failed-message drv local-publish-url))))
         (let ((port finish (build-derivations& store (list drv))))
           (catch #t



reply via email to

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