aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent-messaging
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2022-10-16 17:10:09 +0100
committerChristopher Baines <mail@cbaines.net>2022-10-16 17:10:09 +0100
commitf051c28c0d5882ba94570ef1e525567bbed0254d (patch)
tree138cbc6f253238217af3887b4c42bc1a2da10f68 /guix-build-coordinator/agent-messaging
parent888da40020ab3c66b52e3bdca4a572750cd13fc5 (diff)
downloadbuild-coordinator-f051c28c0d5882ba94570ef1e525567bbed0254d.tar
build-coordinator-f051c28c0d5882ba94570ef1e525567bbed0254d.tar.gz
Use suspendable ports for the agent, with timeouts
This seems like a way of making the Guile internals for doing network I/O reliable. Currently, there are problems where things on the network timeout, but the Guile code for reading/writing just sits there, hung. This seems like it might help.
Diffstat (limited to 'guix-build-coordinator/agent-messaging')
-rw-r--r--guix-build-coordinator/agent-messaging/http.scm4
1 files changed, 3 insertions, 1 deletions
diff --git a/guix-build-coordinator/agent-messaging/http.scm b/guix-build-coordinator/agent-messaging/http.scm
index cec0168..deac4cd 100644
--- a/guix-build-coordinator/agent-messaging/http.scm
+++ b/guix-build-coordinator/agent-messaging/http.scm
@@ -201,7 +201,9 @@
response))))))
(retry-on-error (lambda ()
- (with-gc-protection make-request))
+ (with-port-timeouts
+ (lambda ()
+ (with-gc-protection make-request))))
#:times 9
#:delay 10
#:ignore agent-error-from-coordinator?))