diff options
author | zeripath <art27@cantab.net> | 2021-12-16 19:01:14 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-16 19:01:14 +0000 |
commit | 83546707085af9b59bdefdfbb2dc5511dadb57d7 (patch) | |
tree | a4ab94f79e8d8fc471e1e324a1e155d4c3e7fb4f /services/pull | |
parent | 6e7d28cf3aef9e91c435f841ec217bff5c750b87 (diff) | |
download | gitea-83546707085af9b59bdefdfbb2dc5511dadb57d7.tar.gz gitea-83546707085af9b59bdefdfbb2dc5511dadb57d7.zip |
Prevent hang in git cat-file if repository is not a valid repository and other fixes (#17991)
This PR contains multiple fixes. The most important of which is:
* Prevent hang in git cat-file if the repository is not a valid repository
Unfortunately it appears that if git cat-file is run in an invalid
repository it will hang until stdin is closed. This will result in
deadlocked /pulls pages and dangling git cat-file calls if a broken
repository is tried to be reviewed or pulls exists for a broken
repository.
Fix #14734
Fix #9271
Fix #16113
Otherwise there are a few small other fixes included which this PR was initially intending to fix:
* Fix panic on partial compares due to missing PullRequestWorkInProgressPrefixes
* Fix links on pulls pages due to regression from #17551 - by making most /issues routes match /pulls too - Fix #17983
* Fix links on feeds pages due to another regression from #17551 but also fix issue with syncing tags - Fix #17943
* Add missing locale entries for oauth group claims
* Prevent NPEs if ColorFormat is called on nil users, repos or teams.
Diffstat (limited to 'services/pull')
-rw-r--r-- | services/pull/pull.go | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/services/pull/pull.go b/services/pull/pull.go index 3b127b8f1c..9103da07f4 100644 --- a/services/pull/pull.go +++ b/services/pull/pull.go @@ -746,7 +746,8 @@ func GetIssuesLastCommitStatus(issues models.IssueList) (map[int64]*models.Commi if !ok { gitRepo, err = git.OpenRepository(issue.Repo.RepoPath()) if err != nil { - return nil, err + log.Error("Cannot open git repository %-v for issue #%d[%d]. Error: %v", issue.Repo, issue.Index, issue.ID, err) + continue } gitRepos[issue.RepoID] = gitRepo } |