guix-commits
[Top][All Lists]
Advanced

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

branch master updated: remote-server: Fix fetch worker crash.


From: Mathieu Othacehe
Subject: branch master updated: remote-server: Fix fetch worker crash.
Date: Fri, 03 Dec 2021 04:38:35 -0500

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

mothacehe pushed a commit to branch master
in repository guix-cuirass.

The following commit(s) were added to refs/heads/master by this push:
     new df8837c  remote-server: Fix fetch worker crash.
df8837c is described below

commit df8837ce3eedc5d47ec6f3a0088e2c7044087b1c
Author: Mathieu Othacehe <othacehe@gnu.org>
AuthorDate: Fri Dec 3 10:34:23 2021 +0100

    remote-server: Fix fetch worker crash.
    
    The fetch workers could crash when trying to register gc-roots for a
    derivation that has already been garbage collected.
    
    2021-12-03T03:36:46 fetching 
'/gnu/store/kx2ci2h5fif7j4rv6xcfn2gqk0fjjwqy-mtm-1.2.1.drv' from 
http://10.0.0.7:5558
    In ice-9/eval.scm:
        619:8  7 (_ #(#(#<directory (cuirass scripts remote-server) ?> ?)))
        619:8  6 (_ #(#(#(#(#(#(#<directory (cuirass scr?> ?)) ?) ?) ?) ?))
        619:8  5 (_ #(#(#(#(#(#(#(#(#(#(#(?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?))
    In cuirass/base.scm:
       192:15  4 (register-gc-roots "/gnu/store/kx2ci2h5fif7j4rv6xcfn2g?" ?)
    In guix/derivations.scm:
       549:17  3 (derivation-path->output-paths "/gnu/store/kx2ci2h5fif7?")
    In ice-9/ports.scm:
       450:11  2 (call-with-input-file "/gnu/store/kx2ci2h5fif7j4rv6xcf?" ?)
    In unknown file:
               1 (open-file "/gnu/store/kx2ci2h5fif7j4rv6xcfn2gqk0fjjwq?" ?)
    In ice-9/boot-9.scm:
      1685:16  0 (raise-exception _ #:continuable? _)
    ice-9/boot-9.scm:1685:16: In procedure raise-exception:
    In procedure open-file: No such file or directory: 
"/gnu/store/kx2ci2h5fif7j4rv6xcfn2gqk0fjjwqy-mtm-1.2.1.drv"
    
    Do not try to register the derivation outputs in that case.
    
    * src/cuirass/scripts/remote-server.scm (run-fetch): Check if the derivation
    still exists before trying to register its outputs.
---
 src/cuirass/scripts/remote-server.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/cuirass/scripts/remote-server.scm 
b/src/cuirass/scripts/remote-server.scm
index 4fd11ee..ece8ba3 100644
--- a/src/cuirass/scripts/remote-server.scm
+++ b/src/cuirass/scripts/remote-server.scm
@@ -376,7 +376,10 @@ directory."
             (when (> duration 60)
               (log-message "fetching '~a' took ~a seconds."
                            drv duration)))))
-       (register-gc-roots drv)
+       ;; The derivation may have been GC'ed by that time. Do not try to
+       ;; register its outputs in that case.
+       (when (file-exists? drv)
+         (register-gc-roots drv))
 
        ;; Force the baking of the NAR substitutes so that the first client
        ;; doesn't receive a 404 error.



reply via email to

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