• Patrick Steinhardt's avatar
    gitaly_client: Fix force-routing to primary with empty hook env · fa1ddf5c
    Patrick Steinhardt authored
    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.
    fa1ddf5c
gitaly_client_spec.rb 19.4 KB