Reuse gRPC stubs instead of channels
What does this MR do?
Change GitalyClient so that it reuses gRPC stubs instead of channels. Bad things seem to happen when multiple stubs share one channel. This change has as a consequence that gitlab-ce will establish more (persistent) connections to Gitaly; one per gRPC service.
Are there points in the code the reviewer needs to double check?
Why was this MR needed?
We were starting to see intermittent Gitaly failures in CI. These would have shown up in production too once we put more pressure on Gitaly.
Screenshots (if relevant)
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated -
API support added - Tests
-
Added for this feature/bug -
All builds are passing
-
-
Conform by the merge request performance guides -
Conform by the style guides -
Branch has no merge conflicts with master
(if it does - rebase it please) -
Squashed related commits together
What are the relevant issue numbers?
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/31991
Closes gitaly#187 (closed)