From c279f8aab7e4a522bdaf9662b6e077e2da057783 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Sun, 22 Oct 2023 22:36:49 +0800 Subject: [PATCH] Fix incorrect ctx usage in defer function (#27740) (#27741) --- services/task/migrate.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/task/migrate.go b/services/task/migrate.go index 70e5abdee6..d03951fd26 100644 --- a/services/task/migrate.go +++ b/services/task/migrate.go @@ -42,7 +42,7 @@ func handleCreateError(owner *user_model.User, err error) error { } func runMigrateTask(ctx context.Context, t *admin_model.Task) (err error) { - defer func() { + defer func(ctx context.Context) { if e := recover(); e != nil { err = fmt.Errorf("PANIC whilst trying to do migrate task: %v", e) log.Critical("PANIC during runMigrateTask[%d] by DoerID[%d] to RepoID[%d] for OwnerID[%d]: %v\nStacktrace: %v", t.ID, t.DoerID, t.RepoID, t.OwnerID, e, log.Stack(2)) @@ -69,7 +69,7 @@ func runMigrateTask(ctx context.Context, t *admin_model.Task) (err error) { } // then, do not delete the repository, otherwise the users won't be able to see the last error - }() + }(graceful.GetManager().ShutdownContext()) // even if the parent ctx is canceled, this defer-function still needs to update the task record in database if err = t.LoadRepo(ctx); err != nil { return err