gitaly_client: Fix force-routing to primary with empty hook env
With commit edab619a (gitaly: Fix access checks with transactions and quarantine environments, 2021-02-05), we started injecting a flag into Gitaly requests to force-route to the primary Gitaly node in case a hook environment is set in order to not break access to quarantined objects. Turns out that this change breaks read distribution though as now all requests are force-routed to the primary. The cause of this is trivial enough: the SafeRequestStore returns an empty hash if it wasn't set up to contain anything. Given that the checks whether a HookEnv was set up only checked whether there was something in the SafeRequestStore, they thus always thought that requests were running in the context of a HookEnv. Fix the issue by checking that the returned value is non-empty.
Showing
Please register or sign in to comment