From aa0449fda7bbb20cb3484984dbe1d4e55e48bc2a Mon Sep 17 00:00:00 2001 From: ValentaTomas Date: Fri, 15 May 2026 23:52:31 -0700 Subject: [PATCH] fix(envd): suppress repeat MMDS poll failures The MMDS poll runs on a 50ms ticker and was writing one stderr line per failed iteration, which 1:1-amplified into journald during outages (e.g. before MMDS is up at boot). Log only the first failure of each kind and tag stderr writes as syslog WARNING (<4>). Drop the context-cancelled stderr line: shutdown noise. --- packages/envd/internal/host/mmds.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/envd/internal/host/mmds.go b/packages/envd/internal/host/mmds.go index 9fdc471855..8858ad3d55 100644 --- a/packages/envd/internal/host/mmds.go +++ b/packages/envd/internal/host/mmds.go @@ -139,26 +139,32 @@ func PollForMMDSOpts(ctx context.Context, mmdsChan chan<- *MMDSOpts, envVars *ut httpClient := &http.Client{} defer httpClient.CloseIdleConnections() + var lastErr error + ticker := time.NewTicker(50 * time.Millisecond) defer ticker.Stop() for { select { case <-ctx.Done(): - fmt.Fprintf(os.Stderr, "context cancelled while waiting for mmds opts") + if lastErr != nil { + fmt.Fprintf(os.Stderr, "<4>gave up polling for mmds opts: %v (last error: %v)\n", ctx.Err(), lastErr) + } else { + fmt.Fprintf(os.Stderr, "<4>gave up polling for mmds opts: %v\n", ctx.Err()) + } return case <-ticker.C: token, err := getMMDSToken(ctx, httpClient) if err != nil { - fmt.Fprintf(os.Stderr, "error getting mmds token: %v\n", err) + lastErr = fmt.Errorf("get mmds token: %w", err) continue } mmdsOpts, err := getMMDSOpts(ctx, httpClient, token) if err != nil { - fmt.Fprintf(os.Stderr, "error getting mmds opts: %v\n", err) + lastErr = fmt.Errorf("get mmds opts: %w", err) continue }