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)
Jan 19 2024, 10:20 PM
Unknown Object (File)
Dec 19 2023, 10:56 PM
Unknown Object (File)
Dec 12 2023, 10:04 AM
Unknown Object (File)
Nov 30 2023, 4:26 AM
Unknown Object (File)
Nov 25 2023, 10:33 PM
Unknown Object (File)
Nov 17 2023, 8:03 AM
Unknown Object (File)
Nov 1 2023, 1:04 AM
Unknown Object (File)
Oct 25 2023, 11:24 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
Branch
fallback4
Lint
Lint Passed
SeverityLocationCodeMessage
Advicesrc/applications/diffusion/ssh/DiffusionGitSSHWorkflow.php:183XHP16TODO Comment
Unit
Tests Passed
Build Status
Buildable 23370
Build 32102: Run Core Tests
Build 32101: arc lint + arc unit

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.