From 737397355cfcf604c8f72fa1ef8c8e321221a6fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 24 May 2017 10:51:34 +0200 Subject: [PATCH] publish: Do not bake the same item several times. Before this patch, there was a possibility that we'd queue several baking tasks for the same item. The first one would bake the item but subsequent tasks wouldn't check whether the item had been baked in the meantime and would re-bake it. * guix/scripts/publish.scm (render-narinfo/cached): Don't call 'bake-narinfo+nar' when (file-exists? cached). --- guix/scripts/publish.scm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index db7f6a957e53cd59d07b192e75a9dafeb951a2d6..c306b809a78eb968ab88b9567edf39a2d96d1d80 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -425,11 +425,13 @@ requested using POOL." ;; return 404. (eventually pool (single-baker item - ;; (format #t "baking ~s~%" item) - (bake-narinfo+nar cache item - #:ttl ttl - #:compression compression - #:nar-path nar-path)) + ;; Check whether CACHED has been produced in the meantime. + (unless (file-exists? cached) + ;; (format #t "baking ~s~%" item) + (bake-narinfo+nar cache item + #:ttl ttl + #:compression compression + #:nar-path nar-path))) (when ttl (single-baker 'cache-cleanup