Fix deadlock in updateRepository (#1813)
This commit is contained in:
parent
0c332f0480
commit
9c66d1d9ea
|
@ -619,18 +619,22 @@ func (repo *Repository) IsOwnedBy(userID int64) bool {
|
||||||
return repo.OwnerID == userID
|
return repo.OwnerID == userID
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateSize updates the repository size, calculating it using git.GetRepoSize
|
func (repo *Repository) updateSize(e Engine) error {
|
||||||
func (repo *Repository) UpdateSize() error {
|
|
||||||
repoInfoSize, err := git.GetRepoSize(repo.RepoPath())
|
repoInfoSize, err := git.GetRepoSize(repo.RepoPath())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("UpdateSize: %v", err)
|
return fmt.Errorf("UpdateSize: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
repo.Size = repoInfoSize.Size + repoInfoSize.SizePack
|
repo.Size = repoInfoSize.Size + repoInfoSize.SizePack
|
||||||
_, err = x.ID(repo.ID).Cols("size").Update(repo)
|
_, err = e.Id(repo.ID).Cols("size").Update(repo)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UpdateSize updates the repository size, calculating it using git.GetRepoSize
|
||||||
|
func (repo *Repository) UpdateSize() error {
|
||||||
|
return repo.updateSize(x)
|
||||||
|
}
|
||||||
|
|
||||||
// CanBeForked returns true if repository meets the requirements of being forked.
|
// CanBeForked returns true if repository meets the requirements of being forked.
|
||||||
func (repo *Repository) CanBeForked() bool {
|
func (repo *Repository) CanBeForked() bool {
|
||||||
return !repo.IsBare
|
return !repo.IsBare
|
||||||
|
@ -1554,7 +1558,7 @@ func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = repo.UpdateSize(); err != nil {
|
if err = repo.updateSize(e); err != nil {
|
||||||
log.Error(4, "Failed to update size for repository: %v", err)
|
log.Error(4, "Failed to update size for repository: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue