Handle scenario: SQL thinks repo has no alternates, while in fact it does

If we're unlucky we can end up with repositories that SQL thinks do not belong to an object pool (via Git alternates) but that in fact do use alternates. We should handle this gracefully.

I propose:

  • we add HasGitAlternates and DisconnectFromGitAlternates RPC's #1559 (closed)
  • in the garbage collection sidekiq worker, in case a repository is not supposed to belong to an object pool, we check that this is the case and if necessary we disconnect

Edit 2019-03-20: I now think maybe we need only 1 RPC for that, which either checks and does nothing, or checks and disconnects.

Edited by Jacob Vosmaer
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information