Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'internal/service/repository/cleanup.go')
-rw-r--r--internal/service/repository/cleanup.go28
1 files changed, 16 insertions, 12 deletions
diff --git a/internal/service/repository/cleanup.go b/internal/service/repository/cleanup.go
index 571cf2059..9f076316c 100644
--- a/internal/service/repository/cleanup.go
+++ b/internal/service/repository/cleanup.go
@@ -15,6 +15,8 @@ import (
"gitlab.com/gitlab-org/gitaly/internal/helper"
)
+var lockFiles = []string{"config.lock", "HEAD.lock"}
+
func (server) Cleanup(_ctx context.Context, in *pb.CleanupRequest) (*pb.CleanupResponse, error) {
repoPath, err := helper.GetRepoPath(in.GetRepository())
if err != nil {
@@ -43,7 +45,7 @@ func cleanupRepo(repoPath string) error {
}
configLockThreshod := time.Now().Add(-15 * time.Minute)
- if err := cleanupConfigLock(repoPath, configLockThreshod); err != nil {
+ if err := cleanFileLocks(repoPath, configLockThreshod); err != nil {
return status.Errorf(codes.Internal, "Cleanup: cleanupConfigLock: %v", err)
}
@@ -127,20 +129,22 @@ func cleanStaleWorktrees(repoPath string, threshold time.Time) error {
return nil
}
-func cleanupConfigLock(repoPath string, threshold time.Time) error {
- configLockPath := filepath.Join(repoPath, "config.lock")
+func cleanFileLocks(repoPath string, threshold time.Time) error {
+ for _, fileName := range lockFiles {
+ lockPath := filepath.Join(repoPath, fileName)
- fi, err := os.Stat(configLockPath)
- if err != nil {
- if os.IsNotExist(err) {
- return nil
+ fi, err := os.Stat(lockPath)
+ if err != nil {
+ if os.IsNotExist(err) {
+ continue
+ }
+ return err
}
- return err
- }
- if fi.ModTime().Before(threshold) {
- if err := os.Remove(configLockPath); err != nil && !os.IsNotExist(err) {
- return err
+ if fi.ModTime().Before(threshold) {
+ if err := os.Remove(lockPath); err != nil && !os.IsNotExist(err) {
+ return err
+ }
}
}