From 4a6ec23a9780bd75a7e527bd0dfb1943347869bb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 21 Mar 2020 23:08:04 +0100 Subject: download: Delete the output file upon failure. This allows ENOSPC conditions to be properly reported as such rather than as a hash mismatch due to the availability of a truncated file. Fixes . Reported by Maxim Cournoyer . * guix/build/download.scm (url-fetch): In the failure case, delete FILE. --- guix/build/download.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'guix/build') diff --git a/guix/build/download.scm b/guix/build/download.scm index c647d00f6b..46af149b2f 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -693,6 +693,13 @@ otherwise simply ignore them." (() (format (current-error-port) "failed to download ~s from ~s~%" file url) + + ;; Remove FILE in case we made an incomplete download, for example due + ;; to ENOSPC. + (catch 'system-error + (lambda () + (delete-file file)) + (const #f)) #f)))) ;;; download.scm ends here -- cgit v1.2.3