Page MenuHomePhabricator

Generalize repository proxy retry logic to writes
ClosedPublic

Authored by epriestley on Sep 3 2019, 6:37 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Apr 18, 12:23 PM
Unknown Object (File)
Tue, Apr 16, 8:33 AM
Unknown Object (File)
Thu, Apr 11, 10:03 AM
Unknown Object (File)
Tue, Apr 2, 7:09 AM
Unknown Object (File)
Fri, Mar 29, 11:37 PM
Unknown Object (File)
Jan 19 2024, 10:20 PM
Unknown Object (File)
Dec 19 2023, 10:56 PM
Unknown Object (File)
Dec 12 2023, 10:04 AM
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.