@@ -346,44 +346,52 @@ func deleteIssue(ctx context.Context, issue *issues_model.Issue, deleteAttachmen
346346
347347// DeleteOrphanedIssues delete issues without a repo
348348func 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 {
350351 repoIDs , err := issues_model .GetOrphanedIssueRepoIDs (ctx )
351352 if err != nil {
352353 return err
353354 }
354355 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 {
356358 return err
357359 }
360+ cleanup = cleanup .Append (deleteIssuesCleanup )
358361 }
359362 return nil
360- })
363+ }); err != nil {
364+ return err
365+ }
366+ cleanup ()
367+ return nil
361368}
362369
363370// 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 ()
365373 for {
366374 issues := make ([]* issues_model.Issue , 0 , db .DefaultMaxInSize )
367375 if err := db .GetEngine (ctx ).
368376 Where ("repo_id = ?" , repoID ).
369377 OrderBy ("id" ).
370378 Limit (db .DefaultMaxInSize ).
371379 Find (& issues ); err != nil {
372- return err
380+ return nil , err
373381 }
374382
375383 if len (issues ) == 0 {
376384 break
377385 }
378386
379387 for _ , issue := range issues {
380- cleanup , err := deleteIssue (ctx , issue , deleteAttachments )
388+ deleteIssueCleanUp , err := deleteIssue (ctx , issue , deleteAttachments )
381389 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 )
383391 }
384- cleanup ( )
392+ cleanup = cleanup . Append ( deleteIssueCleanUp )
385393 }
386394 }
387395
388- return nil
396+ return cleanup , nil
389397}
0 commit comments