From 776ea25e55a5b3857269d76a5ca915aa1ffd19d8 Mon Sep 17 00:00:00 2001 From: Zhang Wen Date: Mon, 21 Apr 2025 21:38:12 +0800 Subject: [PATCH] fix the odd info '1 tries remaining' --- src/cargo/util/network/retry.rs | 6 ++++-- tests/testsuite/git_auth.rs | 2 +- tests/testsuite/net_config.rs | 4 ++-- tests/testsuite/registry.rs | 14 ++++++++------ 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/cargo/util/network/retry.rs b/src/cargo/util/network/retry.rs index b799254e1d2..41fecd97435 100644 --- a/src/cargo/util/network/retry.rs +++ b/src/cargo/util/network/retry.rs @@ -108,9 +108,11 @@ impl<'a> Retry<'a> { .downcast_ref::() .map(|http_err| http_err.display_short()) .unwrap_or_else(|| e.root_cause().to_string()); + let left_retries = self.max_retries - self.retries; let msg = format!( - "spurious network error ({} tries remaining): {err_msg}", - self.max_retries - self.retries, + "spurious network error ({} {} remaining): {err_msg}", + left_retries, + if left_retries != 1 { "tries" } else { "try" } ); if let Err(e) = self.gctx.shell().warn(msg) { return RetryResult::Err(e); diff --git a/tests/testsuite/git_auth.rs b/tests/testsuite/git_auth.rs index c5fb5532a83..f0af4f22612 100644 --- a/tests/testsuite/git_auth.rs +++ b/tests/testsuite/git_auth.rs @@ -372,7 +372,7 @@ fn net_err_suggests_fetch_with_cli() { [UPDATING] git repository `ssh://needs-proxy.invalid/git` [WARNING] spurious network error (3 tries remaining): [..] resolve [..] needs-proxy.invalid: [..] known[..] [WARNING] spurious network error (2 tries remaining): [..] resolve [..] needs-proxy.invalid: [..] known[..] -[WARNING] spurious network error (1 tries remaining): [..] resolve [..] needs-proxy.invalid: [..] known[..] +[WARNING] spurious network error (1 try remaining): [..] resolve [..] needs-proxy.invalid: [..] known[..] [ERROR] failed to get `foo` as a dependency of package `foo v0.0.0 ([ROOT]/foo)` Caused by: diff --git a/tests/testsuite/net_config.rs b/tests/testsuite/net_config.rs index b765678c71b..487cc83cf4b 100644 --- a/tests/testsuite/net_config.rs +++ b/tests/testsuite/net_config.rs @@ -35,7 +35,7 @@ fn net_retry_loads_from_config() { .with_status(101) .with_stderr_data(str![[r#" ... -[WARNING] spurious network error (1 tries remaining): [..] +[WARNING] spurious network error (1 try remaining): [..] ... "#]]) .run(); @@ -71,7 +71,7 @@ fn net_retry_git_outputs_warning() { .with_stderr_data(str![[r#" ... [WARNING] spurious network error (2 tries remaining): [..] -[WARNING] spurious network error (1 tries remaining): [..] +[WARNING] spurious network error (1 try remaining): [..] ... "#]]) .run(); diff --git a/tests/testsuite/registry.rs b/tests/testsuite/registry.rs index 0e64832add2..b4e9fbbc60c 100644 --- a/tests/testsuite/registry.rs +++ b/tests/testsuite/registry.rs @@ -3695,11 +3695,12 @@ fn sparse_retry_multiple() { let remain = 3 - retry; write!( &mut expected, - "[WARNING] spurious network error ({remain} tries remaining): \ + "[WARNING] spurious network error ({remain} {} remaining): \ failed to get successful HTTP response from \ `http://127.0.0.1:[..]/{ab}/{cd}/{name}` (127.0.0.1), got 500\n\ body:\n\ - internal server error\n" + internal server error\n", + if remain != 1 { "tries" } else { "try" } ) .unwrap(); } @@ -3847,11 +3848,12 @@ fn dl_retry_multiple() { let remain = 3 - retry; write!( &mut expected, - "[WARNING] spurious network error ({remain} tries remaining): \ + "[WARNING] spurious network error ({remain} {} remaining): \ failed to get successful HTTP response from \ `http://127.0.0.1:[..]/dl/{name}/1.0.0/download` (127.0.0.1), got 500\n\ body:\n\ - internal server error\n" + internal server error\n", + if remain != 1 { "tries" } else { "try" } ) .unwrap(); } @@ -4220,7 +4222,7 @@ Please slow down [WARNING] spurious network error (2 tries remaining): failed to get successful HTTP response from `http://127.0.0.1:[..]/index/3/b/bar` (127.0.0.1), got 503 body: Please slow down -[WARNING] spurious network error (1 tries remaining): failed to get successful HTTP response from `http://127.0.0.1:[..]/index/3/b/bar` (127.0.0.1), got 503 +[WARNING] spurious network error (1 try remaining): failed to get successful HTTP response from `http://127.0.0.1:[..]/index/3/b/bar` (127.0.0.1), got 503 body: Please slow down [ERROR] failed to get `bar` as a dependency of package `foo v0.1.0 ([ROOT]/foo)` @@ -4285,7 +4287,7 @@ Please slow down [WARNING] spurious network error (2 tries remaining): failed to get successful HTTP response from `http://127.0.0.1:[..]/dl/bar/1.0.0/download` (127.0.0.1), got 503 body: Please slow down -[WARNING] spurious network error (1 tries remaining): failed to get successful HTTP response from `http://127.0.0.1:[..]/dl/bar/1.0.0/download` (127.0.0.1), got 503 +[WARNING] spurious network error (1 try remaining): failed to get successful HTTP response from `http://127.0.0.1:[..]/dl/bar/1.0.0/download` (127.0.0.1), got 503 body: Please slow down [ERROR] failed to download from `http://127.0.0.1:[..]/dl/bar/1.0.0/download`