mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Prevent deadlock in create issue (#17970)
This commit is contained in:
		| @@ -141,7 +141,7 @@ func (issue *Issue) isTimetrackerEnabled(ctx context.Context) bool { | ||||
| 		log.Error(fmt.Sprintf("loadRepo: %v", err)) | ||||
| 		return false | ||||
| 	} | ||||
| 	return issue.Repo.IsTimetrackerEnabled() | ||||
| 	return issue.Repo.IsTimetrackerEnabledCtx(ctx) | ||||
| } | ||||
|  | ||||
| // GetPullRequest returns the issue pull request | ||||
|   | ||||
| @@ -28,13 +28,18 @@ func (repo *Repository) CanEnableTimetracker() bool { | ||||
|  | ||||
| // IsTimetrackerEnabled returns whether or not the timetracker is enabled. It returns the default value from config if an error occurs. | ||||
| func (repo *Repository) IsTimetrackerEnabled() bool { | ||||
| 	return repo.IsTimetrackerEnabledCtx(db.DefaultContext) | ||||
| } | ||||
|  | ||||
| // IsTimetrackerEnabledCtx returns whether or not the timetracker is enabled. It returns the default value from config if an error occurs. | ||||
| func (repo *Repository) IsTimetrackerEnabledCtx(ctx context.Context) bool { | ||||
| 	if !setting.Service.EnableTimetracking { | ||||
| 		return false | ||||
| 	} | ||||
|  | ||||
| 	var u *RepoUnit | ||||
| 	var err error | ||||
| 	if u, err = repo.GetUnit(unit.TypeIssues); err != nil { | ||||
| 	if u, err = repo.GetUnitCtx(ctx, unit.TypeIssues); err != nil { | ||||
| 		return setting.Service.DefaultEnableTimetracking | ||||
| 	} | ||||
| 	return u.IssuesConfig().EnableTimetracker | ||||
| @@ -59,7 +64,7 @@ func (repo *Repository) IsDependenciesEnabled() bool { | ||||
| func (repo *Repository) IsDependenciesEnabledCtx(ctx context.Context) bool { | ||||
| 	var u *RepoUnit | ||||
| 	var err error | ||||
| 	if u, err = repo.getUnit(ctx, unit.TypeIssues); err != nil { | ||||
| 	if u, err = repo.GetUnitCtx(ctx, unit.TypeIssues); err != nil { | ||||
| 		log.Trace("%s", err) | ||||
| 		return setting.Service.DefaultEnableDependencies | ||||
| 	} | ||||
|   | ||||
| @@ -312,10 +312,11 @@ func (repo *Repository) MustGetUnit(tp unit.Type) *RepoUnit { | ||||
|  | ||||
| // GetUnit returns a RepoUnit object | ||||
| func (repo *Repository) GetUnit(tp unit.Type) (*RepoUnit, error) { | ||||
| 	return repo.getUnit(db.DefaultContext, tp) | ||||
| 	return repo.GetUnitCtx(db.DefaultContext, tp) | ||||
| } | ||||
|  | ||||
| func (repo *Repository) getUnit(ctx context.Context, tp unit.Type) (*RepoUnit, error) { | ||||
| // GetUnitCtx returns a RepoUnit object | ||||
| func (repo *Repository) GetUnitCtx(ctx context.Context, tp unit.Type) (*RepoUnit, error) { | ||||
| 	if err := repo.LoadUnits(ctx); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user