aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMatthew Gumport <[email protected]>2024-04-05 16:37:35 -0700
committerYuchen Wu <[email protected]>2024-04-22 08:48:19 -0700
commita8b6bbe9f42eee6d1c771a4d38080d6a98626792 (patch)
tree1abccc852f769d80f8f45b7edad169330a73ebee
parenta23d4d8ef1602d4042c223bc8e33067e57fb7746 (diff)
downloadpingora-a8b6bbe9f42eee6d1c771a4d38080d6a98626792.tar.gz
pingora-a8b6bbe9f42eee6d1c771a4d38080d6a98626792.zip
address string interpolation outside of proper context
https://github.com/cloudflare/pingora/issues/181 Ran: ``` rg --pcre2 '(?<!(trace\!\()|(println\!\()|(warn\!\()|(info\!\()|(debug\!\()|(format\!\()|(error\!\()|(write\!\()|(panic\!\())\".*\{.+\"' ``` and audited the 200+ results by hand. Only messed up in a few places! Hat-tip to Kevin for helping me understand the compile error messages I was seeing trying to fix this naively.
-rw-r--r--.bleep2
-rw-r--r--pingora-cache/src/eviction/simple_lru.rs22
-rw-r--r--pingora-core/src/listeners/tls.rs6
3 files changed, 18 insertions, 12 deletions
diff --git a/.bleep b/.bleep
index 881055f..ee7266e 100644
--- a/.bleep
+++ b/.bleep
@@ -1 +1 @@
-5fa74f2bf1f95b283bbeb819687777d5592218ee \ No newline at end of file
+a92e9ba819522dbe0750e9cd9be49d8b813a4e69 \ No newline at end of file
diff --git a/pingora-cache/src/eviction/simple_lru.rs b/pingora-cache/src/eviction/simple_lru.rs
index 43009a8..caa9293 100644
--- a/pingora-cache/src/eviction/simple_lru.rs
+++ b/pingora-cache/src/eviction/simple_lru.rs
@@ -222,15 +222,18 @@ impl EvictionManager for Manager {
async fn save(&self, dir_path: &str) -> Result<()> {
let data = self.serialize()?;
- let dir_path = dir_path.to_owned();
+ let dir_str = dir_path.to_owned();
tokio::task::spawn_blocking(move || {
- let dir_path = Path::new(&dir_path);
- std::fs::create_dir_all(dir_path).or_err(InternalError, "fail to create {dir_path}")?;
+ let dir_path = Path::new(&dir_str);
+ std::fs::create_dir_all(dir_path)
+ .or_err_with(InternalError, || format!("fail to create {dir_str}"))?;
let file_path = dir_path.join(FILE_NAME);
- let mut file =
- File::create(file_path).or_err(InternalError, "fail to create {file_path}")?;
- file.write_all(&data)
- .or_err(InternalError, "fail to write to {file_path}")
+ let mut file = File::create(&file_path).or_err_with(InternalError, || {
+ format!("fail to create {}", file_path.display())
+ })?;
+ file.write_all(&data).or_err_with(InternalError, || {
+ format!("fail to write to {}", file_path.display())
+ })
})
.await
.or_err(InternalError, "async blocking IO failure")?
@@ -240,8 +243,9 @@ impl EvictionManager for Manager {
let dir_path = dir_path.to_owned();
let data = tokio::task::spawn_blocking(move || {
let file_path = Path::new(&dir_path).join(FILE_NAME);
- let mut file =
- File::open(file_path).or_err(InternalError, "fail to open {file_path}")?;
+ let mut file = File::open(file_path.clone()).or_err_with(InternalError, || {
+ format!("fail to open {}", file_path.display())
+ })?;
let mut buffer = Vec::with_capacity(8192);
file.read_to_end(&mut buffer)
.or_err(InternalError, "fail to write to {file_path}")?;
diff --git a/pingora-core/src/listeners/tls.rs b/pingora-core/src/listeners/tls.rs
index c8f0e74..655346f 100644
--- a/pingora-core/src/listeners/tls.rs
+++ b/pingora-core/src/listeners/tls.rs
@@ -63,10 +63,12 @@ impl TlsSettings {
)?;
accept_builder
.set_private_key_file(key_path, SslFiletype::PEM)
- .or_err(TLS_CONF_ERR, "fail to read key file {key_path}")?;
+ .or_err_with(TLS_CONF_ERR, || format!("fail to read key file {key_path}"))?;
accept_builder
.set_certificate_chain_file(cert_path)
- .or_err(TLS_CONF_ERR, "fail to read cert file {cert_path}")?;
+ .or_err_with(TLS_CONF_ERR, || {
+ format!("fail to read cert file {cert_path}")
+ })?;
Ok(TlsSettings {
accept_builder,
callbacks: None,