Geo: Deleting a project leaves orphaned LFS objects around
This is a follow-up of https://gitlab.com/gitlab-org/gitlab-ee/issues/6135: Geo: FileRemovalService leaves orphaned LFS entries around
I encountered this while testing https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5966, but I'm filing a separate issue, since it requires changes beyond the scope of that MR.
Scenario
- Create a project and push LFS objects to that project
- Have the project, and it's LFS objects, synced to the Geo secondary
- Delete the project
- Run
RemoveUnreferencedLfsObjectsWorker.new.perform
Problem
With the changes in https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5966 this will generate Geo::LfsObjectDeletedEvents
. But the Geo secondary cannot handle those events correctly, cause the event references a LfsObject
that was deleted by RemoveUnreferencedLfsObjectsWorker
Proposal
Add a file
column to geo_lfs_object_deleted_events
so the secondary can read the file from that column, if the LfsObject
no longer exists.
Probably job artifacts and uploads need those changes too.