Skip to content

Geo synchronization does not seem to replicate default branch all the time

Summary

As part of the GCP Migration, we're synchronizing all of gitlab.com to gprd.gitlab.com, and attempting to resolve all repository checksum mismatches that come up between the two sites as a result.

One class of failure I've just observed, which seems to affect multiple repositories (100% of a random sample of unknown failures) is that the primary has a default branch like dev or develop (so the HEAD ref points there), whereas the secondary has a default branch of master.

Steps to reproduce

???

Example Project

See https://gitlab.com/gitlab-com/migration/issues/546#note_93820486

What is the current bug behavior?

Secondary has the wrong value for HEAD

What is the expected correct behavior?

Secondary's value for HEAD should match primary's

Relevant logs and/or screenshots

(Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's very hard to read otherwise.)

Output of checks

This bug happens on GitLab.com

Possible fixes

Either the default branch simply isn't respected at all, or we fail to synchronize the change in default branch.

A snapshot will copy the HEAD file unmodified, so this must be a problem in the git fetch path.