aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent-messaging/http.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/agent-messaging/http.scm')
-rw-r--r--guix-build-coordinator/agent-messaging/http.scm16
1 files changed, 15 insertions, 1 deletions
diff --git a/guix-build-coordinator/agent-messaging/http.scm b/guix-build-coordinator/agent-messaging/http.scm
index 217b2c1..c4cf59b 100644
--- a/guix-build-coordinator/agent-messaging/http.scm
+++ b/guix-build-coordinator/agent-messaging/http.scm
@@ -37,6 +37,8 @@
#:use-module (web request)
#:use-module (web response)
#:use-module (web uri)
+ #:use-module (gcrypt base16)
+ #:use-module (gcrypt hash)
#:use-module (lzlib)
#:use-module ((gnutls) #:select (gnutls-version))
#:use-module ((guix config) #:select (%guix-version))
@@ -277,6 +279,11 @@
(define file-size
(stat:size (stat file)))
+ (define file-md5-hash-promise
+ (delay
+ (bytevector->base16-string
+ (file-hash (hash-algorithm md5) file))))
+
(define (get-partial-upload-bytes)
(let-values (((body response)
(coordinator-http-request
@@ -389,7 +396,14 @@
(eq? uploaded-bytes file-size)))
(retry-on-error perform-upload
#:times 100
- #:delay 40)))
+ #:delay 40
+ #:error-hook
+ (lambda _
+ (log 'DEBUG
+ "perform-upload " file
+ " (bytes: " file-size ", "
+ "md5: " (force file-md5-hash-promise)
+ ")")))))
args))
(define-method (submit-log-file