From f294b6f65c9db26fc593c8d30a32481cbb0641a5 Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Sat, 24 Jun 2023 06:58:43 -0700 Subject: [PATCH] ready_queue: increment attempts after exhausting connection candidates Previously we'd just use the default error case and retry 1 minute later, but for sites with broken tls where we can never make a connection without changing our configuration to skip tls, we don't want to keep retrying every minute and instead want to follow the normal queue exponential backoff. --- crates/kumod/src/ready_queue.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/kumod/src/ready_queue.rs b/crates/kumod/src/ready_queue.rs index 450922c9..9f396930 100644 --- a/crates/kumod/src/ready_queue.rs +++ b/crates/kumod/src/ready_queue.rs @@ -492,7 +492,7 @@ impl Dispatcher { .have_more_connection_candidates(&mut dispatcher) .await { - if let Some(msg) = dispatcher.msg.as_ref() { + if let Some(msg) = dispatcher.msg.take() { log_disposition(LogDisposition { kind: RecordType::TransientFailure, msg: msg.clone(), @@ -515,6 +515,7 @@ impl Dispatcher { delivery_protocol: Some(&dispatcher.delivery_protocol), }) .await; + Dispatcher::requeue_message(msg, true, None).await?; } if consecutive_connection_failures.fetch_add(1, Ordering::SeqCst)