Page MenuHomePhabricator

Generalize repository proxy retry logic to writes

Authored by epriestley on Sep 3 2019, 6:37 PM.



Ref T13286. The current (very safe / conservative) rules for retrying git reads generalize to git writes, so we can use the same ruleset in both cases.

Normally, writes converge rapidly to only having good nodes at the head of the list, so this has less impact than the similar change to reads, but it generally improves consistency and allows us to assert that writes which can be served will be served.

Test Plan
  • In a cluster with an up node and a down node, pushed changes.
  • Saw a push to the down node fail, retry, and succeed.
  • Did some pulls, saw appropriate retries and success.
  • Note that once one write goes through, the node which received the write always ends up at the head of the writable list, so nodes need to be explicitly thawed to reproduce the failure/retry behavior.

Diff Detail

rP Phabricator
Lint Not Applicable
Tests Not Applicable

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Sep 3 2019, 7:34 PM
This revision was automatically updated to reflect the committed changes.