mirror of
https://github.com/go-gitea/gitea.git
synced 2025-08-22 02:51:11 +00:00
Fix bug
This commit is contained in:
parent
f24dc5e658
commit
9faf99d8ed
@ -39,8 +39,9 @@ func TestPullRequestList_LoadReviewCommentsCounts(t *testing.T) {
|
|||||||
reviewComments, err := prs.LoadReviewCommentsCounts(db.DefaultContext)
|
reviewComments, err := prs.LoadReviewCommentsCounts(db.DefaultContext)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Len(t, reviewComments, 2)
|
assert.Len(t, reviewComments, 2)
|
||||||
assert.Equal(t, 1, reviewComments[prs[0].IssueID])
|
for _, pr := range prs {
|
||||||
assert.Equal(t, 2, reviewComments[prs[1].IssueID])
|
assert.Equal(t, 1, reviewComments[pr.IssueID])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPullRequestList_LoadReviews(t *testing.T) {
|
func TestPullRequestList_LoadReviews(t *testing.T) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2024 The Gitea Authors. All rights reserved.
|
// Copyright 2025 The Gitea Authors. All rights reserved.
|
||||||
// SPDX-License-Identifier: MIT
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
package v1_25
|
package v1_25
|
||||||
|
@ -14,18 +14,17 @@ import (
|
|||||||
|
|
||||||
func Test_AddFileStatusToAttachment(t *testing.T) {
|
func Test_AddFileStatusToAttachment(t *testing.T) {
|
||||||
type Attachment struct {
|
type Attachment struct {
|
||||||
ID int64 `xorm:"pk autoincr"`
|
ID int64 `xorm:"pk autoincr"`
|
||||||
UUID string `xorm:"uuid UNIQUE"`
|
UUID string `xorm:"uuid UNIQUE"`
|
||||||
RepoID int64 `xorm:"INDEX"` // this should not be zero
|
RepoID int64 `xorm:"INDEX"` // this should not be zero
|
||||||
IssueID int64 `xorm:"INDEX"` // maybe zero when creating
|
IssueID int64 `xorm:"INDEX"` // maybe zero when creating
|
||||||
ReleaseID int64 `xorm:"INDEX"` // maybe zero when creating
|
ReleaseID int64 `xorm:"INDEX"` // maybe zero when creating
|
||||||
UploaderID int64 `xorm:"INDEX DEFAULT 0"` // Notice: will be zero before this column added
|
UploaderID int64 `xorm:"INDEX DEFAULT 0"` // Notice: will be zero before this column added
|
||||||
CommentID int64 `xorm:"INDEX"`
|
CommentID int64 `xorm:"INDEX"`
|
||||||
Name string
|
Name string
|
||||||
DownloadCount int64 `xorm:"DEFAULT 0"`
|
DownloadCount int64 `xorm:"DEFAULT 0"`
|
||||||
Size int64 `xorm:"DEFAULT 0"`
|
Size int64 `xorm:"DEFAULT 0"`
|
||||||
CreatedUnix timeutil.TimeStamp `xorm:"created"`
|
CreatedUnix timeutil.TimeStamp `xorm:"created"`
|
||||||
CustomDownloadURL string `xorm:"-"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare and load the testing database
|
// Prepare and load the testing database
|
||||||
|
@ -151,24 +151,31 @@ func cleanAttachments(ctx context.Context, attachmentIDs []int64) []int64 {
|
|||||||
// ScanToBeDeletedAttachments scans for attachments that are marked as to be deleted and send to
|
// ScanToBeDeletedAttachments scans for attachments that are marked as to be deleted and send to
|
||||||
// clean queue
|
// clean queue
|
||||||
func ScanToBeDeletedAttachments(ctx context.Context) error {
|
func ScanToBeDeletedAttachments(ctx context.Context) error {
|
||||||
attachments := make([]*repo_model.Attachment, 0, 10)
|
attachmentIDs := make([]int64, 0, 100)
|
||||||
lastID := int64(0)
|
lastID := int64(0)
|
||||||
for {
|
for {
|
||||||
if err := db.GetEngine(ctx).
|
if err := db.GetEngine(ctx).
|
||||||
|
Select("id").
|
||||||
// use the status and id index to speed up the query
|
// use the status and id index to speed up the query
|
||||||
Where("status = ? AND id > ?", db.FileStatusToBeDeleted, lastID).
|
Where("status = ? AND id > ?", db.FileStatusToBeDeleted, lastID).
|
||||||
Asc("id").
|
Asc("id").
|
||||||
Limit(100).
|
Limit(100).
|
||||||
Find(&attachments); err != nil {
|
Find(&attachmentIDs); err != nil {
|
||||||
return fmt.Errorf("scan to-be-deleted attachments: %w", err)
|
return fmt.Errorf("scan to-be-deleted attachments: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(attachments) == 0 {
|
if len(attachmentIDs) == 0 {
|
||||||
log.Trace("No more attachments to be deleted")
|
log.Trace("No more attachments to be deleted")
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
AddAttachmentsToCleanQueue(ctx, attachments)
|
for _, id := range attachmentIDs {
|
||||||
lastID = attachments[len(attachments)-1].ID
|
if err := cleanQueue.Push(id); err != nil {
|
||||||
|
log.Error("Failed to push attachment ID %d to clean queue: %v", id, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lastID = attachmentIDs[len(attachmentIDs)-1]
|
||||||
|
attachmentIDs = attachmentIDs[0:0]
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
@ -318,7 +318,9 @@ func deleteIssue(ctx context.Context, issue *issues_model.Issue, deleteAttachmen
|
|||||||
if err := deleteComment(ctx, comment, deleteAttachments); err != nil {
|
if err := deleteComment(ctx, comment, deleteAttachments); err != nil {
|
||||||
return nil, fmt.Errorf("deleteComment [comment_id: %d]: %w", comment.ID, err)
|
return nil, fmt.Errorf("deleteComment [comment_id: %d]: %w", comment.ID, err)
|
||||||
}
|
}
|
||||||
toBeCleanedAttachments = append(toBeCleanedAttachments, comment.Attachments...)
|
if deleteAttachments {
|
||||||
|
toBeCleanedAttachments = append(toBeCleanedAttachments, comment.Attachments...)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if deleteAttachments {
|
if deleteAttachments {
|
||||||
|
Loading…
Reference in New Issue
Block a user