Page MenuHomePhabricator

Allow "inactive" repositories to be read over SSH for cluster sync

Authored by epriestley on Jan 31 2019, 7:47 PM.



Fixes T13192. See PHI1015. When you deactivate a repository, we currently stop serving it.

This creates a problem for intracluster sync, since new nodes can't sync it. If nothing else, this means that if you "ship of theseus" your cluster and turn nodes over one at a time, you will eventually lose the entire repository. Since that's clearly a bad outcome, support sync.

Test Plan

Testing this requires a "real" cluster, so I mostly used secure.

I deactivated rGITTEST and ran this on secure002:

./bin/repository thaw --demote --force GITTEST && ./bin/repository update GITTEST

Before the patch, this failed:

[2019-01-31 19:40:37] EXCEPTION: (CommandException) Command failed with error #128!
git fetch --prune -- 'ssh://' '+refs/*:refs/*'


Warning: Permanently added '' (RSA) to the list of known hosts.
phabricator-ssh-exec: This repository ("rGITTEST") is not available over SSH.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

After applying (a similar patch to) this patch to secure001, the sync worked.

I'll repeat this test with the actual patch once this deploys to secure.

Diff Detail

rP Phabricator
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley created this revision.Jan 31 2019, 7:47 PM
epriestley requested review of this revision.Jan 31 2019, 7:49 PM
amckinley accepted this revision.Feb 1 2019, 4:22 AM
This revision is now accepted and ready to land.Feb 1 2019, 4:22 AM
This revision was automatically updated to reflect the committed changes.