Corpus Management Bug - Changes in how packages are deleted breaks corpus deletion
The bug
Deleting a corpus is done via the destroyPackage
mutation. Deleting a corpus via the corpus management UI ends up with a corpus with missing data. See further below the issues that recently caused this bug. An MR landed ~4 days ago that seems to have caused this bug.
Analysis
The API itself has not changed, but how Packages are deleted in the backend have. The object use to be deleted immediately, but now it is now deleted with a background job.
When we delete a corpus, we are attempting to destroy a package. Now that packages are deleted in the background at a future time, we end up showing corpuses that exist with empty PackageFiles that are marked for deletion, but not actually deleted.
Proposed fix
Update the GraphQL query for corpuses
to return Packages that are not marked for deletion. The field is
status: :pending_destruction
Related Issues:
https://gitlab.com/gitlab-org/gitlab/-/issues/348166
Probably the Breaking MR: (Merged 4 days ago)
https://gitlab.com/gitlab-org/security/gitlab/-/merge_requests/2108
Changes:
https://gitlab.com/gitlab-org/security/gitlab/-/merge_requests/2108/diffs
Corpus Management Deletion Impact: