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).
This commit is contained in:
Ludovic Courtès 2017-05-24 10:51:34 +02:00
parent ae54843433
commit 737397355c
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 7 additions and 5 deletions

View File

@ -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