From 9afd79d8c03ed29bda6bfa967154f656522f0226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 25 Jan 2024 12:36:32 +0100 Subject: [PATCH] Manager: prevent logging an error when fetching unknown worker Prevent logging an error in the persistence layer when an unknown worker is requested. This reduces the noise & confusion when the web interface is showing the details of a worker, but the worker gets removed by someone else. Or when the Manager doesn't know about a Worker and it's trying to connect. See #104282. --- internal/manager/persistence/workers.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/manager/persistence/workers.go b/internal/manager/persistence/workers.go index 16491ef2..a8e73d4e 100644 --- a/internal/manager/persistence/workers.go +++ b/internal/manager/persistence/workers.go @@ -75,10 +75,14 @@ func (db *DB) FetchWorker(ctx context.Context, uuid string) (*Worker, error) { w := Worker{} tx := db.gormDB.WithContext(ctx). Preload("Tags"). - First(&w, "uuid = ?", uuid) + Find(&w, "uuid = ?", uuid). + Limit(1) if tx.Error != nil { return nil, workerError(tx.Error, "fetching worker") } + if w.ID == 0 { + return nil, ErrWorkerNotFound + } return &w, nil }