From b35eaa902a96422236d092f0e8a634df29a4a4c1 Mon Sep 17 00:00:00 2001 From: Viktor Varland Date: Tue, 30 Sep 2025 12:48:12 +0200 Subject: [PATCH] chore: refine error handling for bind mount related issues --- internal/server/queue.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/server/queue.go b/internal/server/queue.go index 38b5e39..55f93fb 100644 --- a/internal/server/queue.go +++ b/internal/server/queue.go @@ -192,12 +192,15 @@ func writeFileAtomic(path string, data []byte) error { } if err := osRename(tmp, path); err != nil { - if errors.Is(err, syscall.EBUSY) { + if errors.Is(err, syscall.EBUSY) || errors.Is(err, syscall.ETXTBSY) { if writeErr := osWriteFile(path, data, 0o644); writeErr != nil { _ = os.Remove(tmp) return writeErr } - return os.Remove(tmp) + if removeErr := os.Remove(tmp); removeErr != nil && !os.IsNotExist(removeErr) { + // best effort cleanup; ignore failure + } + return nil } _ = os.Remove(tmp) return err