@@ -346,44 +346,52 @@ func deleteIssue(ctx context.Context, issue *issues_model.Issue, deleteAttachmen
346
346
347
347
// DeleteOrphanedIssues delete issues without a repo
348
348
func DeleteOrphanedIssues (ctx context.Context ) error {
349
- return db .WithTx (ctx , func (ctx context.Context ) error {
349
+ cleanup := util .NewCleanUpFunc ()
350
+ if err := db .WithTx (ctx , func (ctx context.Context ) error {
350
351
repoIDs , err := issues_model .GetOrphanedIssueRepoIDs (ctx )
351
352
if err != nil {
352
353
return err
353
354
}
354
355
for i := range repoIDs {
355
- if err := DeleteIssuesByRepoID (ctx , repoIDs [i ], true ); err != nil {
356
+ deleteIssuesCleanup , err := DeleteIssuesByRepoID (ctx , repoIDs [i ], true )
357
+ if err != nil {
356
358
return err
357
359
}
360
+ cleanup = cleanup .Append (deleteIssuesCleanup )
358
361
}
359
362
return nil
360
- })
363
+ }); err != nil {
364
+ return err
365
+ }
366
+ cleanup ()
367
+ return nil
361
368
}
362
369
363
370
// DeleteIssuesByRepoID deletes issues by repositories id
364
- func DeleteIssuesByRepoID (ctx context.Context , repoID int64 , deleteAttachments bool ) error {
371
+ func DeleteIssuesByRepoID (ctx context.Context , repoID int64 , deleteAttachments bool ) (util.CleanUpFunc , error ) {
372
+ cleanup := util .NewCleanUpFunc ()
365
373
for {
366
374
issues := make ([]* issues_model.Issue , 0 , db .DefaultMaxInSize )
367
375
if err := db .GetEngine (ctx ).
368
376
Where ("repo_id = ?" , repoID ).
369
377
OrderBy ("id" ).
370
378
Limit (db .DefaultMaxInSize ).
371
379
Find (& issues ); err != nil {
372
- return err
380
+ return nil , err
373
381
}
374
382
375
383
if len (issues ) == 0 {
376
384
break
377
385
}
378
386
379
387
for _ , issue := range issues {
380
- cleanup , err := deleteIssue (ctx , issue , deleteAttachments )
388
+ deleteIssueCleanUp , err := deleteIssue (ctx , issue , deleteAttachments )
381
389
if err != nil {
382
- return fmt .Errorf ("deleteIssue [issue_id: %d]: %w" , issue .ID , err )
390
+ return nil , fmt .Errorf ("deleteIssue [issue_id: %d]: %w" , issue .ID , err )
383
391
}
384
- cleanup ( )
392
+ cleanup = cleanup . Append ( deleteIssueCleanUp )
385
393
}
386
394
}
387
395
388
- return nil
396
+ return cleanup , nil
389
397
}
0 commit comments