From 1edd2f95c244cef0a26a97d65eb80965648ca7cb Mon Sep 17 00:00:00 2001 From: AnyCPU Date: Fri, 13 Feb 2026 23:40:24 +0200 Subject: [PATCH] Add missing state file close and error logging in saveStateSnapshot --- internal/server/router.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/server/router.go b/internal/server/router.go index 051f0be8..6cb3b14f 100644 --- a/internal/server/router.go +++ b/internal/server/router.go @@ -341,7 +341,7 @@ func (r *Router) installLoadBalancer(name string, slot TargetSlot, lb *LoadBalan return replaced, err } -func (r *Router) saveStateSnapshot() error { +func (r *Router) saveStateSnapshot() (err error) { services := []*Service{} r.withReadLock(func() error { for _, service := range r.services.All() { @@ -352,8 +352,15 @@ func (r *Router) saveStateSnapshot() error { f, err := os.Create(r.statePath) if err != nil { + slog.Error("Unable to create state file", "error", err, "path", r.statePath) return err } + defer func() { + if cerr := f.Close(); cerr != nil { + slog.Error("Unable to close state file", "error", cerr, "path", r.statePath) + err = errors.Join(err, cerr) + } + }() err = json.NewEncoder(f).Encode(services) if err != nil {