From 956a8c76912d43adbca2a61087caf389405b3c00 Mon Sep 17 00:00:00 2001 From: Alejandro Pedraza Date: Thu, 28 Dec 2023 16:07:24 -0500 Subject: [PATCH] Replace panic with return, and make sure process_events finishes properly --- cni-repair-controller/src/lib.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cni-repair-controller/src/lib.rs b/cni-repair-controller/src/lib.rs index 5529fb74..821a935c 100644 --- a/cni-repair-controller/src/lib.rs +++ b/cni-repair-controller/src/lib.rs @@ -86,7 +86,7 @@ async fn process_events( tracing::warn!(%namespace, %name, "Dropped event (channel full)"); metrics.queue_overflow.inc(); } - Err(TrySendError::Closed(_)) => panic!("Channel closed or dropped"), + Err(TrySendError::Closed(_)) => return, } } } @@ -235,12 +235,13 @@ mod test { watcher::Event::Applied(pod3), ]); - tokio::spawn(process_events(stream, tx, metrics)); + let process_events_handle = tokio::spawn(process_events(stream, tx, metrics)); time::sleep(Duration::from_secs(2)).await; let msg = rx.try_recv(); let object_ref = msg.unwrap(); assert_eq!(object_ref.name, Some("pod2".to_string())); let msg = rx.try_recv(); assert_eq!(msg, Err(TryRecvError::Disconnected)); + assert!(process_events_handle.is_finished()); } }