mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Re-attempt to delete temporary upload if the file is locked by another process (#12447)
Replace all calls to os.Remove/os.RemoveAll by retrying util.Remove/util.RemoveAll and remove circular dependencies from util. Fix #12339 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
		@@ -7,12 +7,12 @@ package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	"code.gitea.io/gitea/modules/structs"
 | 
			
		||||
	"code.gitea.io/gitea/modules/util"
 | 
			
		||||
 | 
			
		||||
	"github.com/unknwon/com"
 | 
			
		||||
	"xorm.io/builder"
 | 
			
		||||
@@ -305,14 +305,14 @@ func deleteOrg(e *xorm.Session, u *User) error {
 | 
			
		||||
	//	so just keep error logs of those operations.
 | 
			
		||||
	path := UserPath(u.Name)
 | 
			
		||||
 | 
			
		||||
	if err := os.RemoveAll(path); err != nil {
 | 
			
		||||
	if err := util.RemoveAll(path); err != nil {
 | 
			
		||||
		return fmt.Errorf("Failed to RemoveAll %s: %v", path, err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(u.Avatar) > 0 {
 | 
			
		||||
		avatarPath := u.CustomAvatarPath()
 | 
			
		||||
		if com.IsExist(avatarPath) {
 | 
			
		||||
			if err := os.Remove(avatarPath); err != nil {
 | 
			
		||||
			if err := util.Remove(avatarPath); err != nil {
 | 
			
		||||
				return fmt.Errorf("Failed to remove %s: %v", avatarPath, err)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user