From 5c165f9dde3389c2db6d95fc9c2abb133d8d981e Mon Sep 17 00:00:00 2001 From: ChristopherHX Date: Thu, 19 Mar 2026 20:40:04 +0100 Subject: [PATCH 1/6] Split out sendLogFallback --- protocol/logger/job_logger.go | 38 +++++++++++++++-------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/protocol/logger/job_logger.go b/protocol/logger/job_logger.go index 0ce6051..f618dc1 100644 --- a/protocol/logger/job_logger.go +++ b/protocol/logger/job_logger.go @@ -193,6 +193,20 @@ func (logger *WebsocketLiveloggerWithFallback) Close() error { return logger.replace(&errorLogger{}) } +func (logger *WebsocketLiveloggerWithFallback) sendLogFallback(err error, wrapper *protocol.TimelineRecordFeedLinesWrapper) { + if !logger.ForceWebsock { + if logger.Connection.Trace { + fmt.Printf("Failed to reconnect to websocket %s, fallback to vsslogger\n", err.Error()) + } + currentLogger = logger.initializeVssLogger() + if currentLogger == nil { + return fmt.Errorf("failed to initialize VSS logger after websocket reconnect failure: %w", err) + } + return currentLogger.SendLog(wrapper) + } + return err +} + func (logger *WebsocketLiveloggerWithFallback) SendLog(wrapper *protocol.TimelineRecordFeedLinesWrapper) error { currentLogger := getPointer(logger.currentLogger.Load()) if currentLogger == nil { @@ -208,31 +222,11 @@ func (logger *WebsocketLiveloggerWithFallback) SendLog(wrapper *protocol.Timelin } if wslogger, ok := currentLogger.(*WebsocketLivelogger); ok { if err = wslogger.Connect(); err != nil { - if !logger.ForceWebsock { - if logger.Connection.Trace { - fmt.Printf("Failed to reconnect to websocket %s, fallback to vsslogger\n", err.Error()) - } - currentLogger = logger.initializeVssLogger() - if currentLogger == nil { - return fmt.Errorf("failed to initialize VSS logger after websocket reconnect failure: %w", err) - } - return currentLogger.SendLog(wrapper) - } - return err + return logger.sendLogFallback(err, wrapper) } err = currentLogger.SendLog(wrapper) if err != nil { - if !logger.ForceWebsock { - if logger.Connection.Trace { - fmt.Printf("Failed to send webconsole log %s, fallback to vsslogger\n", err.Error()) - } - currentLogger = logger.initializeVssLogger() - if currentLogger == nil { - return fmt.Errorf("failed to initialize VSS logger after websocket send failure: %w", err) - } - return currentLogger.SendLog(wrapper) - } - return err + return logger.sendLogFallback(err, wrapper) } return nil } From d55601a0c5ffdbe9f91dfefb58a734c0580c1772 Mon Sep 17 00:00:00 2001 From: ChristopherHX Date: Thu, 19 Mar 2026 20:43:53 +0100 Subject: [PATCH 2/6] Enhance sendLogFallback with reason parameter --- protocol/logger/job_logger.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/protocol/logger/job_logger.go b/protocol/logger/job_logger.go index f618dc1..2367bc9 100644 --- a/protocol/logger/job_logger.go +++ b/protocol/logger/job_logger.go @@ -193,14 +193,14 @@ func (logger *WebsocketLiveloggerWithFallback) Close() error { return logger.replace(&errorLogger{}) } -func (logger *WebsocketLiveloggerWithFallback) sendLogFallback(err error, wrapper *protocol.TimelineRecordFeedLinesWrapper) { +func (logger *WebsocketLiveloggerWithFallback) sendLogFallback(err error, reason string, wrapper *protocol.TimelineRecordFeedLinesWrapper) { if !logger.ForceWebsock { if logger.Connection.Trace { - fmt.Printf("Failed to reconnect to websocket %s, fallback to vsslogger\n", err.Error()) + fmt.Printf("Failed to %s to websocket %s, fallback to vsslogger\n", reason, err.Error()) } - currentLogger = logger.initializeVssLogger() + currentLogger := logger.initializeVssLogger() if currentLogger == nil { - return fmt.Errorf("failed to initialize VSS logger after websocket reconnect failure: %w", err) + return fmt.Errorf("failed to initialize VSS logger after websocket %s failure: %w", reason, err) } return currentLogger.SendLog(wrapper) } @@ -222,11 +222,11 @@ func (logger *WebsocketLiveloggerWithFallback) SendLog(wrapper *protocol.Timelin } if wslogger, ok := currentLogger.(*WebsocketLivelogger); ok { if err = wslogger.Connect(); err != nil { - return logger.sendLogFallback(err, wrapper) + return logger.sendLogFallback(err, "reconnect", wrapper) } err = currentLogger.SendLog(wrapper) if err != nil { - return logger.sendLogFallback(err, wrapper) + return logger.sendLogFallback(err, "send", wrapper) } return nil } From 1accd318c10d6c1509d3d637f09a6121d0547c09 Mon Sep 17 00:00:00 2001 From: ChristopherHX Date: Thu, 19 Mar 2026 20:45:12 +0100 Subject: [PATCH 3/6] Modify sendLogFallback to return error Updated sendLogFallback method to return an error. --- protocol/logger/job_logger.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/protocol/logger/job_logger.go b/protocol/logger/job_logger.go index 2367bc9..46dfcce 100644 --- a/protocol/logger/job_logger.go +++ b/protocol/logger/job_logger.go @@ -193,7 +193,7 @@ func (logger *WebsocketLiveloggerWithFallback) Close() error { return logger.replace(&errorLogger{}) } -func (logger *WebsocketLiveloggerWithFallback) sendLogFallback(err error, reason string, wrapper *protocol.TimelineRecordFeedLinesWrapper) { +func (logger *WebsocketLiveloggerWithFallback) sendLogFallback(err error, reason string, wrapper *protocol.TimelineRecordFeedLinesWrapper) error { if !logger.ForceWebsock { if logger.Connection.Trace { fmt.Printf("Failed to %s to websocket %s, fallback to vsslogger\n", reason, err.Error()) From 84019088ded58a29f1e4cc1b9a7e3bbea9752338 Mon Sep 17 00:00:00 2001 From: Christopher Homberger Date: Sat, 21 Mar 2026 16:27:31 +0100 Subject: [PATCH 4/6] . --- main.go | 4 ++-- protocol/logger/job_logger.go | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index d5ddb23..a27f1b1 100644 --- a/main.go +++ b/main.go @@ -94,7 +94,7 @@ func loadConfiguration() (*runnerconfiguration.RunnerSettings, error) { // fmt.Printf("The runner needs to be configured first: %v\n", err.Error()) // return 1 settings.PoolID = 1 - } else if err != nil { + } else { return nil, err } } @@ -292,7 +292,7 @@ func main() { _ = os.Remove("auth.json") // Ignore error for cleanup _ = os.Remove("cred.pkcs1") // Ignore error for cleanup if saveActionsRunnerConfig && len(settings.Instances) == 1 { - _ = runnerCompat.FromRunnerInstance(settings.Instances[0], runnerCompat.DefaultConfigFileAccess{}) + err = runnerCompat.FromRunnerInstance(settings.Instances[0], runnerCompat.DefaultConfigFileAccess{}) } else { if writeErr := common.WriteJSON("settings.json", settings); writeErr != nil { fmt.Printf("Failed to write settings.json: %v", writeErr) diff --git a/protocol/logger/job_logger.go b/protocol/logger/job_logger.go index 46dfcce..10069d9 100644 --- a/protocol/logger/job_logger.go +++ b/protocol/logger/job_logger.go @@ -193,7 +193,8 @@ func (logger *WebsocketLiveloggerWithFallback) Close() error { return logger.replace(&errorLogger{}) } -func (logger *WebsocketLiveloggerWithFallback) sendLogFallback(err error, reason string, wrapper *protocol.TimelineRecordFeedLinesWrapper) error { +func (logger *WebsocketLiveloggerWithFallback) sendLogFallback(err error, reason string, + wrapper *protocol.TimelineRecordFeedLinesWrapper) error { if !logger.ForceWebsock { if logger.Connection.Trace { fmt.Printf("Failed to %s to websocket %s, fallback to vsslogger\n", reason, err.Error()) From fe0ce190d153c8a0d111a0fa8d3f5d101305523f Mon Sep 17 00:00:00 2001 From: Christopher Homberger Date: Sat, 21 Mar 2026 16:29:24 +0100 Subject: [PATCH 5/6] . --- protocol/logger/job_logger.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/protocol/logger/job_logger.go b/protocol/logger/job_logger.go index 10069d9..d3b10e5 100644 --- a/protocol/logger/job_logger.go +++ b/protocol/logger/job_logger.go @@ -193,8 +193,8 @@ func (logger *WebsocketLiveloggerWithFallback) Close() error { return logger.replace(&errorLogger{}) } -func (logger *WebsocketLiveloggerWithFallback) sendLogFallback(err error, reason string, - wrapper *protocol.TimelineRecordFeedLinesWrapper) error { +func (logger *WebsocketLiveloggerWithFallback) sendLogFallback( + err error, reason string, wrapper *protocol.TimelineRecordFeedLinesWrapper) error { if !logger.ForceWebsock { if logger.Connection.Trace { fmt.Printf("Failed to %s to websocket %s, fallback to vsslogger\n", reason, err.Error()) From c47a88f0ecd77aa75278cc3ce8049faaad9a1323 Mon Sep 17 00:00:00 2001 From: Christopher Homberger Date: Sat, 21 Mar 2026 16:30:23 +0100 Subject: [PATCH 6/6] . --- protocol/logger/job_logger.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/protocol/logger/job_logger.go b/protocol/logger/job_logger.go index d3b10e5..90049ee 100644 --- a/protocol/logger/job_logger.go +++ b/protocol/logger/job_logger.go @@ -194,7 +194,8 @@ func (logger *WebsocketLiveloggerWithFallback) Close() error { } func (logger *WebsocketLiveloggerWithFallback) sendLogFallback( - err error, reason string, wrapper *protocol.TimelineRecordFeedLinesWrapper) error { + err error, reason string, wrapper *protocol.TimelineRecordFeedLinesWrapper, +) error { if !logger.ForceWebsock { if logger.Connection.Trace { fmt.Printf("Failed to %s to websocket %s, fallback to vsslogger\n", reason, err.Error())