diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-04-09 23:01:02 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-04-09 23:01:02 +0200 |
commit | 9132b9bd72304e6fe659b3cb31700bdc49696caf (patch) | |
tree | 3bf008325b3da489cb14970d252d095a46b479d7 | |
parent | 9bf404e9e678a8779a04f552f53994cc5d02656a (diff) |
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>.
-rw-r--r-- | guix/nar.scm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/guix/nar.scm b/guix/nar.scm index 5b602df90b..ce69163a8a 100644 --- a/guix/nar.scm +++ b/guix/nar.scm @@ -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. |