From e83a30af4ba0c5e5a729733b3cfae1b5ec2513ce Mon Sep 17 00:00:00 2001 From: Charles Hall Date: Sun, 23 Jun 2024 17:41:53 -0700 Subject: [PATCH] reduce duplicate events I hate `log_error`. A better way to do this would be to not reuse the same error type literally everywhere, so you could distinguish, in `crate::service::sending::Service::handle_response`, whether to emit an event based on which function created the error. Fixing that is a lot more work, though. --- src/api/server_server.rs | 13 ++++++++----- src/service/sending.rs | 7 ++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/api/server_server.rs b/src/api/server_server.rs index f1fdd412..b3f07300 100644 --- a/src/api/server_server.rs +++ b/src/api/server_server.rs @@ -130,10 +130,11 @@ impl FedDest { } } -#[tracing::instrument(skip(request), fields(url))] +#[tracing::instrument(skip(request, log_error), fields(url))] pub(crate) async fn send_request( destination: &ServerName, request: T, + log_error: bool, ) -> Result where T: OutgoingRequest + Debug, @@ -330,10 +331,12 @@ where } } Err(e) => { - warn!( - error = %e, - "Could not send request", - ); + if log_error { + warn!( + error = %e, + "Could not send request", + ); + } Err(e.into()) } } diff --git a/src/service/sending.rs b/src/service/sending.rs index 03593208..c46f26d7 100644 --- a/src/service/sending.rs +++ b/src/service/sending.rs @@ -286,8 +286,8 @@ impl Service { })) } } - Err(_err) => { - warn!("Marking transaction as failed"); + Err(error) => { + warn!(%error, "Marking transaction as failed"); current_transaction_status.entry(destination).and_modify(|e| { *e = match e { TransactionStatus::Running => { @@ -684,7 +684,7 @@ impl Service { debug!("Got permit"); let response = tokio::time::timeout( Duration::from_secs(2 * 60), - server_server::send_request(destination, request), + server_server::send_request(destination, request, true), ) .await .map_err(|_| { @@ -920,6 +920,7 @@ async fn handle_federation_event( )) .into(), }, + false, ) .await?;