Skip to content

Commit f3956fc

Browse files
authored
Fix incorrect ctx usage in defer function (#27740)
1 parent d8c09c2 commit f3956fc

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

services/task/migrate.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,11 @@ func handleCreateError(owner *user_model.User, err error) error {
4242
}
4343

4444
func runMigrateTask(ctx context.Context, t *admin_model.Task) (err error) {
45-
defer func() {
45+
defer func(ctx context.Context) {
4646
if e := recover(); e != nil {
4747
err = fmt.Errorf("PANIC whilst trying to do migrate task: %v", e)
4848
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))
4949
}
50-
// fixme: Because ctx is canceled here, so the db.DefaultContext is needed.
51-
ctx := db.DefaultContext
5250
if err == nil {
5351
err = admin_model.FinishMigrateTask(ctx, t)
5452
if err == nil {
@@ -69,7 +67,7 @@ func runMigrateTask(ctx context.Context, t *admin_model.Task) (err error) {
6967
}
7068

7169
// then, do not delete the repository, otherwise the users won't be able to see the last error
72-
}()
70+
}(graceful.GetManager().ShutdownContext()) // even if the parent ctx is canceled, this defer-function still needs to update the task record in database
7371

7472
if err = t.LoadRepo(ctx); err != nil {
7573
return err

0 commit comments

Comments
 (0)