Skip to content

Commit 99cf0d3

Browse files
zeripathjolheiser
andauthored
Continue GCing other repos on error in one repo (#22422)
The current code propagates all errors up to the iteration step meaning that a single malformed repo will prevent GC of other repos. This PR simply stops that propagation. Fix #21605 Signed-off-by: Andrew Thornton <[email protected]> Signed-off-by: Andrew Thornton <[email protected]> Co-authored-by: John Olheiser <[email protected]>
1 parent f1c13b4 commit 99cf0d3

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

Diff for: services/repository/check.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ func GitGcRepos(ctx context.Context, timeout time.Duration, args ...git.CmdArg)
7373
return db.ErrCancelledf("before GC of %s", repo.FullName())
7474
default:
7575
}
76-
return GitGcRepo(ctx, repo, timeout, args)
76+
// we can ignore the error here because it will be logged in GitGCRepo
77+
_ = GitGcRepo(ctx, repo, timeout, args)
78+
return nil
7779
},
7880
); err != nil {
7981
return err
@@ -93,7 +95,7 @@ func GitGcRepo(ctx context.Context, repo *repo_model.Repository, timeout time.Du
9395
stdout, _, err = command.RunStdString(&git.RunOpts{Timeout: timeout, Dir: repo.RepoPath()})
9496

9597
if err != nil {
96-
log.Error("Repository garbage collection failed for %v. Stdout: %s\nError: %v", repo, stdout, err)
98+
log.Error("Repository garbage collection failed for %-v. Stdout: %s\nError: %v", repo, stdout, err)
9799
desc := fmt.Sprintf("Repository garbage collection failed for %s. Stdout: %s\nError: %v", repo.RepoPath(), stdout, err)
98100
if err := system_model.CreateRepositoryNotice(desc); err != nil {
99101
log.Error("CreateRepositoryNotice: %v", err)
@@ -165,7 +167,7 @@ func DeleteMissingRepositories(ctx context.Context, doer *user_model.User) error
165167
}
166168
log.Trace("Deleting %d/%d...", repo.OwnerID, repo.ID)
167169
if err := models.DeleteRepository(doer, repo.OwnerID, repo.ID); err != nil {
168-
log.Error("Failed to DeleteRepository %s [%d]: Error: %v", repo.FullName(), repo.ID, err)
170+
log.Error("Failed to DeleteRepository %-v: Error: %v", repo, err)
169171
if err2 := system_model.CreateRepositoryNotice("Failed to DeleteRepository %s [%d]: Error: %v", repo.FullName(), repo.ID, err); err2 != nil {
170172
log.Error("CreateRepositoryNotice: %v", err)
171173
}

0 commit comments

Comments
 (0)