From fffdce2c58c3c1fec682b68e1cfe302ed9b0321fb389c91ca8d5c089c503425e Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Mon, 24 Feb 2025 13:11:54 +0100 Subject: [PATCH] better recovery in unexpected situations --- bots-common/listen.go | 5 ++++- workflow-pr/repo_check.go | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/bots-common/listen.go b/bots-common/listen.go index 1aea242..a9f9cae 100644 --- a/bots-common/listen.go +++ b/bots-common/listen.go @@ -178,7 +178,10 @@ func connectToRabbitMQ(log *log.Logger, server url.URL, topics []string) chan Ra func ProcessEvent(f RequestProcessor, request *Request) { defer func() { if r := recover(); r != nil { - log.Println(r) + log.Println("panic caught") + if err, ok := r.(error); !ok { + log.Println(err) + } log.Println(string(debug.Stack())) } }() diff --git a/workflow-pr/repo_check.go b/workflow-pr/repo_check.go index 3ee92b7..f492518 100644 --- a/workflow-pr/repo_check.go +++ b/workflow-pr/repo_check.go @@ -6,6 +6,7 @@ import ( "log" "math/rand" "path" + "runtime/debug" "strings" "time" @@ -44,6 +45,16 @@ func CreateDefaultStateChecker(checkOnStart bool, processor *RequestProcessor, g } func (s *DefaultStateChecker) VerifyProjectState(org string, configs []*common.AutogitConfig, idx int) error { + defer func() { + if r := recover(); r != nil { + log.Println("panic caught") + if err, ok := r.(error); !ok { + log.Println(err) + } + log.Println(string(debug.Stack())) + } + }() + git, err := s.git.CreateGitHandler(GitAuthor, GitEmail, AppName) if err != nil { return fmt.Errorf("Cannot create git handler: %w", err)