I was testing out cluster repositories in development: migrating one repository onto, then back off of the cluster service. The steps to reproduce are:
- Register an existing host as a cluster device: repo001.mycompany.net
- Create service: repos001.mycompany.net and add bindings for repo001.mycompany.net:80 and repo001.mycompany.net:22
- Migrate a repository onto the cluster service:
$ ./bin/repository clusterize rTEST --service repos001.mycompany.net
- Wait for everything to synchronize
- Expand the cluster by registering a second repository host device: repo002.mycompany.net
- Again, wait for everything to synchronize. Now migrate the repository back off the service:
$ ./bin/repository clusterize rTEST --remove-service
- Push a few new commit to rTEST. At this point, repo001.mycompany.net will be 2 commits ahead of repo002.mycompany.net.
- Navigate to the Diffusion repository history and refresh the page a few times.
Expected: new commits are displayed (note the latest commit is from 5:12pm):
Then refresh. Roughly half the time you won't see the new commits. (note the latest commit is from 5:09pm):
It looks like it's still using the cluster service call instead of running git log directly on disk. I also tried disabling the service bindings for repo002.mycompany.net thinking that might fix it, but after doing so I was still able to reproduce. Also tried in an incognito window to rule out browser caching/oddness.
I'm mainly just looking for a way to roll back during the migration in case any configuration issues are encountered, and maybe there's a better way to go about it than the method I described that won't trigger this edge case. Thanks!
phabricator cadac75b82bbed18d52c3ee7ba6d396bff69c009 (Fri, Jun 24)
arcanist 18b27b03fa3d9f2439bf998c5fa2e4f5bd93db16 (Sat, Jun 18)
phutil 8aa8612a094b4dafcf5c461b746a613a1e229b86 (Sat, Jun 18)