From b1c5392ce817d467730aa4c435e63e6ed7c81524 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 2 Oct 2020 17:40:50 +0100 Subject: Guard against Guix Data Service requests hanging I don't know if this is happening, but the hooks are getting stuck, and this might be a cause. --- guix-build-coordinator/guix-data-service.scm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/guix-build-coordinator/guix-data-service.scm b/guix-build-coordinator/guix-data-service.scm index e67949c..c662c66 100644 --- a/guix-build-coordinator/guix-data-service.scm +++ b/guix-build-coordinator/guix-data-service.scm @@ -25,6 +25,7 @@ #:use-module (json) #:use-module (web client) #:use-module (web response) + #:use-module (guix-build-coordinator utils) #:use-module (guix-build-coordinator datastore) #:export (send-build-event-to-guix-data-service @@ -41,11 +42,15 @@ (let*-values (((response body) - (http-post target-url - #:body body - ;; Guile doesn't treat JSON as text, so decode the - ;; body manually - #:decode-body? #f)) + (with-timeout 30000 ; 30 seconds + (raise-exception + (make-exception-with-message + "timeout making guix-data-service request")) + (http-post target-url + #:body body + ;; Guile doesn't treat JSON as text, so decode the + ;; body manually + #:decode-body? #f))) ((code) (response-code response))) (unless (and (>= code 200) -- cgit v1.2.3