Check for context exceeded in WalkGitLog (#17319)

There is a slight race in checking of a context deadline exceed in #16467
which leads to a 500 on the repository page.

The solution is to check the error coming back from `*LogNameStatusRepoParser.Next()`
and if it is the `ContextDeadlineExceeded` break from the loop.

Fix #17314

Signed-off-by: Andrew Thornton <art27@cantab.net>
tokarchuk/v1.17
zeripath 3 years ago committed by GitHub
parent a889d0cc8c
commit 58cd55d353
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      modules/git/log_name_status.go

@ -350,6 +350,9 @@ heaploop:
} }
current, err := g.Next(treepath, path2idx, changed, maxpathlen) current, err := g.Next(treepath, path2idx, changed, maxpathlen)
if err != nil { if err != nil {
if err == context.DeadlineExceeded {
break heaploop
}
g.Close() g.Close()
return nil, err return nil, err
} }

Loading…
Cancel
Save