From 2f4086f8367d4de44e6919eb01f77bb57a4e7d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Papp?= Date: Thu, 16 Jul 2026 11:31:45 +0200 Subject: [PATCH] [client] Always restore Idle on Down despite engine.Stop failure Log engine.Stop() errors during cleanupConnection instead of returning early, so beginDown always reaches finishDown and the daemon is restored to Idle. Return ErrServiceNotUp without an error log. --- client/server/server.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/server/server.go b/client/server/server.go index 591bd735a..08d20b153 100644 --- a/client/server/server.go +++ b/client/server/server.go @@ -1099,7 +1099,9 @@ func (s *Server) beginDown() (chan struct{}, error) { giveUpChan := s.clientGiveUpChan if err := s.cleanupConnection(); err != nil { - // todo review to update the status in case any type of error + if errors.Is(err, ErrServiceNotUp) { + return nil, err + } log.Errorf("failed to shut down properly: %v", err) return nil, err } @@ -1172,7 +1174,7 @@ func (s *Server) cleanupConnection() error { // making the run loop the sole owner of engine shutdown. if engine != nil { if err := engine.Stop(); err != nil { - return err + log.Errorf("failed to stop engine during cleanup: %v", err) } }