• Nick Thomas's avatar
    Fix two data races in the branch names cache · fafb29e2
    Nick Thomas authored
    Expiry of the branch name cache could race with checking inclusion, in
    such a way that a branch may be marked as non-existent when it does in
    fact exist.
    
    This MR uses Redis transactions to atomically take the existence of the
    set at the same time as the smembers / sismembers call, so we can
    distinguish between "an empty value exists in the cache" and "the cache
    is empty".
    fafb29e2
repository_set_cache_spec.rb 3.64 KB