ソースを参照

Place wrapper around comment as diff to catch panics (#15085) (#15094)

Backport #15085

There are a few recurrent issues with comment as diff reporting panics that are resistant to fixing due to the fact that the panic occurs in the template render and is swallowed by the template renderer.

This PR just adds some logging to force the panic to properly logged and re-propagates back up to the template renderer so we can actually detect what the issue is.

Signed-off-by: Andrew Thornton art27@cantab.net
tags/v1.14.0-rc2
zeripath 3年前
コミット
6feb435867
コミッターのメールアドレスに関連付けられたアカウントが存在しません
1個のファイルの変更8行の追加0行の削除
  1. 8
    0
      services/gitdiff/gitdiff.go

+ 8
- 0
services/gitdiff/gitdiff.go ファイルの表示

@@ -1288,6 +1288,14 @@ func CommentAsDiff(c *models.Comment) (*Diff, error) {

// CommentMustAsDiff executes AsDiff and logs the error instead of returning
func CommentMustAsDiff(c *models.Comment) *Diff {
if c == nil {
return nil
}
defer func() {
if err := recover(); err != nil {
log.Error("PANIC whilst retrieving diff for comment[%d] Error: %v\nStack: %s", c.ID, err, log.Stack(2))
}
}()
diff, err := CommentAsDiff(c)
if err != nil {
log.Warn("CommentMustAsDiff: %v", err)

読み込み中…
キャンセル
保存