mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 03:25:11 +01:00 
			
		
		
		
	Fix race on updatesize (#5190)
* fix race on updatesize * fix more repoPath
This commit is contained in:
		
							parent
							
								
									aeb5655c25
								
							
						
					
					
						commit
						e7822473e9
					
				| @ -685,7 +685,7 @@ func (repo *Repository) IsOwnedBy(userID int64) bool { | ||||
| } | ||||
| 
 | ||||
| func (repo *Repository) updateSize(e Engine) error { | ||||
| 	repoInfoSize, err := git.GetRepoSize(repo.RepoPath()) | ||||
| 	repoInfoSize, err := git.GetRepoSize(repo.repoPath(e)) | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("UpdateSize: %v", err) | ||||
| 	} | ||||
| @ -1713,7 +1713,7 @@ func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err e | ||||
| 		} | ||||
| 
 | ||||
| 		// Create/Remove git-daemon-export-ok for git-daemon... | ||||
| 		daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`) | ||||
| 		daemonExportFile := path.Join(repo.repoPath(e), `git-daemon-export-ok`) | ||||
| 		if repo.IsPrivate && com.IsExist(daemonExportFile) { | ||||
| 			if err = os.Remove(daemonExportFile); err != nil { | ||||
| 				log.Error(4, "Failed to remove %s: %v", daemonExportFile, err) | ||||
|  | ||||
| @ -197,14 +197,15 @@ func newCommitStatus(sess *xorm.Session, opts NewCommitStatusOptions) error { | ||||
| 		return fmt.Errorf("newCommitStatus[nil, %s]: no repository specified", opts.SHA) | ||||
| 	} | ||||
| 	opts.CommitStatus.RepoID = opts.Repo.ID | ||||
| 	repoPath := opts.Repo.repoPath(sess) | ||||
| 
 | ||||
| 	if opts.Creator == nil { | ||||
| 		return fmt.Errorf("newCommitStatus[%s, %s]: no user specified", opts.Repo.RepoPath(), opts.SHA) | ||||
| 		return fmt.Errorf("newCommitStatus[%s, %s]: no user specified", repoPath, opts.SHA) | ||||
| 	} | ||||
| 
 | ||||
| 	gitRepo, err := git.OpenRepository(opts.Repo.RepoPath()) | ||||
| 	gitRepo, err := git.OpenRepository(repoPath) | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("OpenRepository[%s]: %v", opts.Repo.RepoPath(), err) | ||||
| 		return fmt.Errorf("OpenRepository[%s]: %v", repoPath, err) | ||||
| 	} | ||||
| 	if _, err := gitRepo.GetCommit(opts.SHA); err != nil { | ||||
| 		return fmt.Errorf("GetCommit[%s]: %v", opts.SHA, err) | ||||
| @ -219,19 +220,19 @@ func newCommitStatus(sess *xorm.Session, opts NewCommitStatusOptions) error { | ||||
| 	has, err := sess.Desc("index").Limit(1).Get(lastCommitStatus) | ||||
| 	if err != nil { | ||||
| 		sess.Rollback() | ||||
| 		return fmt.Errorf("newCommitStatus[%s, %s]: %v", opts.Repo.RepoPath(), opts.SHA, err) | ||||
| 		return fmt.Errorf("newCommitStatus[%s, %s]: %v", repoPath, opts.SHA, err) | ||||
| 	} | ||||
| 	if has { | ||||
| 		log.Debug("newCommitStatus[%s, %s]: found", opts.Repo.RepoPath(), opts.SHA) | ||||
| 		log.Debug("newCommitStatus[%s, %s]: found", repoPath, opts.SHA) | ||||
| 		nextIndex = lastCommitStatus.Index | ||||
| 	} | ||||
| 	opts.CommitStatus.Index = nextIndex + 1 | ||||
| 	log.Debug("newCommitStatus[%s, %s]: %d", opts.Repo.RepoPath(), opts.SHA, opts.CommitStatus.Index) | ||||
| 	log.Debug("newCommitStatus[%s, %s]: %d", repoPath, opts.SHA, opts.CommitStatus.Index) | ||||
| 
 | ||||
| 	// Insert new CommitStatus | ||||
| 	if _, err = sess.Insert(opts.CommitStatus); err != nil { | ||||
| 		sess.Rollback() | ||||
| 		return fmt.Errorf("newCommitStatus[%s, %s]: %v", opts.Repo.RepoPath(), opts.SHA, err) | ||||
| 		return fmt.Errorf("newCommitStatus[%s, %s]: %v", repoPath, opts.SHA, err) | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user