Page MenuHomePhabricator

Generalize repository proxy retry logic to writes
ClosedPublic

Authored by epriestley on Sep 3 2019, 6:37 PM.
Tags
None
Referenced Files
F19508059: D20778.diff
Sat, Jan 10, 1:01 AM
F19246978: D20778.diff
Mon, Dec 22, 3:13 AM
F19046055: D20778.id.diff
Nov 27 2025, 9:30 AM
F19039420: D20778.diff
Nov 26 2025, 7:41 AM
F18830823: D20778.id.diff
Oct 25 2025, 9:05 AM
F18827130: D20778.diff
Oct 24 2025, 7:54 AM
F18808258: D20778.diff
Oct 19 2025, 5:49 AM
F18716921: D20778.diff
Sep 29 2025, 12:53 PM
Subscribers
None

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
Lint Not Applicable
Unit
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.