Page MenuHomePhabricator

Generalize repository proxy retry logic to writes
ClosedPublic

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

Details

Summary

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

Repository
rP Phabricator
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley created this revision.Sep 3 2019, 6:37 PM
epriestley requested review of this revision.Sep 3 2019, 6:39 PM
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.