~ruther/guix-local

9132b9bd72304e6fe659b3cb31700bdc49696caf — Ludovic Courtès 12 years ago 9bf404e
nar: 'restore-file-set' registers the temporary result as a GC root.

* guix/nar.scm (temporary-store-directory): Use 'add-indirect-root', not
  'add-temp-root'.  Reported by Andreas Enge <andreas@enge.fr> at
  <https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00161.html>.
1 files changed, 3 insertions(+), 1 deletions(-)

M guix/nar.scm
M guix/nar.scm => guix/nar.scm +3 -1
@@ 339,8 339,10 @@ protected from garbage collection."
  (let* ((template (string-append (%store-prefix) "/guix-XXXXXX"))
         (port     (mkstemp! template)))
    (close-port port)

    ;; Make sure TEMPLATE is not collected while we populate it.
    (with-store store
      (add-temp-root store template))
      (add-indirect-root store template))

    ;; There's a small window during which the GC could delete the file.  Try
    ;; again if that happens.