Fix bug with batched gitaly ref deletion duplicates
What does this MR do and why?
This is a %16.4 backport of !134323 (merged)
If there are duplicates sent in a single Git command we get an error.
This de-duplication works around this. We could also consider
de-duplicating in the queue but this is tricky to do without race
conditions and would also require a migration. Without the uniq
fix
this new test fails with:
1) BatchedGitRefUpdates::ProjectCleanupService#execute handles duplicates
Failure/Error: raise Gitlab::Git::CommandError, e
Gitlab::Git::CommandError:
13:unable to prepare: reference has been updated multiple times within a transaction.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
This MR is backporting a bug fix, documentation update, or spec fix, previously merged in the default branch. -
The MR that fixed the bug on the default branch has been deployed to GitLab.com (not applicable for documentation or spec changes). -
This MR has a severity label assigned (if applicable). -
This MR has been approved by a maintainer (only one approval is required). -
Ensure the e2e:package-and-test-ee
job has either succeeded or been approved by a Software Engineer in Test.
Note to the merge request author and maintainer
If you have questions about the patch release process, please:
- Refer to the patch release runbook for engineers and maintainers for guidance.
- Ask questions on the
#releases
Slack channel (internal only).
Edited by Kamil Trzciński