From ba7eb4d90f83865bc295e56d6327eb53e8acdbe6 Mon Sep 17 00:00:00 2001 From: Josh Siviour Date: Tue, 18 Aug 2026 09:35:38 +1000 Subject: [PATCH] docs: record why awsgw sets no WriteTimeout (#821) http.Server.WriteTimeout is a total deadline rather than an idle one, so any value below the RDS command channel's 20s long poll kills every poll mid-flight and strands agents on a channel no command can reach. Nothing recorded that the omission was load-bearing, leaving it one hardening pass away from removal. --- spinifex/services/awsgw/awsgw.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spinifex/services/awsgw/awsgw.go b/spinifex/services/awsgw/awsgw.go index 1c338abc5..ba6c7e3ac 100644 --- a/spinifex/services/awsgw/awsgw.go +++ b/spinifex/services/awsgw/awsgw.go @@ -519,6 +519,9 @@ func launchService(config *config.ClusterConfig) error { return fmt.Errorf("load TLS cert: %w", err) } + // WriteTimeout is deliberately absent: it is a total deadline rather than an + // idle one, so any value below the RDS command channel's 20s long poll kills + // every poll mid-flight and strands agents on a channel no command reaches. server := &http.Server{ Addr: nodeConfig.AWSGW.Host, Handler: handler,