Fix incorrect ctx usage in defer function (#27740)
This commit is contained in:
parent
d8c09c25d1
commit
f3956fcb28
|
@ -42,13 +42,11 @@ func handleCreateError(owner *user_model.User, err error) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func runMigrateTask(ctx context.Context, t *admin_model.Task) (err error) {
|
func runMigrateTask(ctx context.Context, t *admin_model.Task) (err error) {
|
||||||
defer func() {
|
defer func(ctx context.Context) {
|
||||||
if e := recover(); e != nil {
|
if e := recover(); e != nil {
|
||||||
err = fmt.Errorf("PANIC whilst trying to do migrate task: %v", e)
|
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))
|
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 {
|
if err == nil {
|
||||||
err = admin_model.FinishMigrateTask(ctx, t)
|
err = admin_model.FinishMigrateTask(ctx, t)
|
||||||
if err == nil {
|
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
|
// 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 {
|
if err = t.LoadRepo(ctx); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
Loading…
Reference in New Issue
Block a user