Mirrored projects don't replicate tags to secondary nodes
Summary
Replicated on a fresh 13.2.4-ee
instance
If a mirrored project on a Geo setup has a new tag added from the source project, GitLab correctly syncs the new tag to the primary node, but the new tag is not replicated to the secondary nodes.
Because of this, there is a secondary bug here where the checksums don't match between nodes as it appears that tags are not part of this calculation.
Steps to reproduce
- Create a fork of an existing project and setup mirroring between the source project and the forked project.
- Create a new tag in the source project in the GitLab UI.
- Wait for mirroring (or trigger it manually) to pull the new tag into the forked project
- Observe the following:
-
On the primary node, the forked project will contain the new tag
-
On the secondary nodes, the forked project will not contain the new tag
-
Look at the checksums, they won't match up via
sudo gitlab-rails c
:Project.find(<PROJECT_ID>).repository.checksum Geo::ProjectRegistry.find(<PROJECT_ID>).repository_verification_checksum_sha
-
More information in ZD (internal use only)
What is the current bug behavior?
Mirrored projects with tags added to the source project are not replicated to secondary nodes.
What is the expected correct behavior?
Mirrored projects with tags added to the source project should be replicated to secondary nodes.
Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's tough to read otherwise.)
Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)
Possible fixes
The customer has provided their own diff in ZD (internal use only), although they note that it will generate alot more Geo repo update attempts.