Fix two data races in the branch names cache
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".
Showing
Please register or sign in to comment