SoM: Retry HTTP 502/504

This commit is contained in:
Trent Nelson 2021-02-17 01:51:19 -07:00 committed by Trent Nelson
parent 5df36aec7d
commit 513ec31d1e
3 changed files with 9 additions and 1 deletions

1
Cargo.lock generated
View File

@ -5234,6 +5234,7 @@ version = "1.6.0"
dependencies = [
"clap",
"log 0.4.11",
"reqwest 0.10.8",
"semver 0.9.0",
"serde_yaml",
"solana-clap-utils",

View File

@ -11,6 +11,7 @@ version = "1.6.0"
[dependencies]
clap = "2.33.0"
log = "0.4.11"
reqwest = { version = "0.10.8", default-features = false, features = ["blocking", "rustls-tls", "json"] }
semver = "0.9.0"
serde_yaml = "0.8.13"
solana-clap-utils = { path = "../clap-utils", version = "1.6.0" }

View File

@ -5,6 +5,7 @@ use {
ArgMatches,
},
log::*,
reqwest::StatusCode,
solana_clap_utils::{
input_parsers::{keypair_of, pubkey_of},
input_validators::{
@ -371,7 +372,12 @@ where
..
}) = result
{
if reqwest_error.is_timeout() && retries > 0 {
let can_retry = reqwest_error.is_timeout()
|| reqwest_error
.status()
.map(|s| s == StatusCode::BAD_GATEWAY || s == StatusCode::GATEWAY_TIMEOUT)
.unwrap_or(false);
if can_retry && retries > 0 {
info!("RPC request timeout, {} retries remaining", retries);
retries -= 1;
continue;