diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2023-09-29 10:31:36 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-29 02:31:36 +0000 |
commit | 968be05bccbb117e53c107fbaf7b706a8d4027a3 (patch) | |
tree | bb6c5c3c1832aa0ff46f115bb1b244a1d3063b30 /models | |
parent | 5e02e3b7ee8294e2ec94968ece9af56bf1aa1534 (diff) | |
download | gitea-968be05bccbb117e53c107fbaf7b706a8d4027a3.tar.gz gitea-968be05bccbb117e53c107fbaf7b706a8d4027a3.zip |
Add logs for data broken of comment review (#27326)
Fix #27306
Diffstat (limited to 'models')
-rw-r--r-- | models/issues/comment_list.go | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/models/issues/comment_list.go b/models/issues/comment_list.go index 6f1d350eb4..93af45870e 100644 --- a/models/issues/comment_list.go +++ b/models/issues/comment_list.go @@ -10,6 +10,7 @@ import ( repo_model "code.gitea.io/gitea/models/repo" user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/container" + "code.gitea.io/gitea/modules/log" ) // CommentList defines a list of comments @@ -422,37 +423,18 @@ func (comments CommentList) loadReviews(ctx context.Context) error { reviewIDs := comments.getReviewIDs() reviews := make(map[int64]*Review, len(reviewIDs)) - left := len(reviewIDs) - for left > 0 { - limit := db.DefaultMaxInSize - if left < limit { - limit = left - } - rows, err := db.GetEngine(ctx). - In("id", reviewIDs[:limit]). - Rows(new(Review)) - if err != nil { - return err - } - - for rows.Next() { - var review Review - err = rows.Scan(&review) - if err != nil { - _ = rows.Close() - return err - } - - reviews[review.ID] = &review - } - _ = rows.Close() - - left -= limit - reviewIDs = reviewIDs[limit:] + if err := db.GetEngine(ctx).In("id", reviewIDs).Find(&reviews); err != nil { + return err } for _, comment := range comments { comment.Review = reviews[comment.ReviewID] + if comment.Review == nil { + if comment.ReviewID > 0 { + log.Error("comment with review id [%d] but has no review record", comment.ReviewID) + } + continue + } // If the comment dismisses a review, we need to load the reviewer to show whose review has been dismissed. // Otherwise, the reviewer is the poster of the comment, so we don't need to load it. |