diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-10-22 22:12:27 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-22 14:12:27 +0000 |
commit | f3956fcb28e665ee7f2773f4ae14842405bb2462 (patch) | |
tree | f7af902564cf42023935a62566585fc8672057e6 /services/task | |
parent | d8c09c25d1a51861f2e160d213449c7bde327a77 (diff) | |
download | gitea-f3956fcb28e665ee7f2773f4ae14842405bb2462.tar.gz gitea-f3956fcb28e665ee7f2773f4ae14842405bb2462.zip |
Fix incorrect ctx usage in defer function (#27740)
Diffstat (limited to 'services/task')
-rw-r--r-- | services/task/migrate.go | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/services/task/migrate.go b/services/task/migrate.go index 475fa7a61b..9cef77a6c8 100644 --- a/services/task/migrate.go +++ b/services/task/migrate.go @@ -42,13 +42,11 @@ 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)) } - // fixme: Because ctx is canceled here, so the db.DefaultContext is needed. - ctx := db.DefaultContext if err == nil { err = admin_model.FinishMigrateTask(ctx, t) if err == nil { @@ -69,7 +67,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 |