From c9e0c97d6c3c34236c0e50fd87a0f9909ea6924e Mon Sep 17 00:00:00 2001 From: Moustafa Baiou Date: Fri, 3 Jun 2022 07:16:05 -0400 Subject: [PATCH] fix applier hangs which can happen with many watched objects (#925) fix applier hangs which can happen with many watched objects and children When the applier scheduler channel buffer gets full, it will block preventing any further progress by the applier. This can be triggered with many objects which have many children that are being watched as the buffer fills up and progress is no longer made and re-queues can get to a point where they are never processed once the buffer is full. Signed-off-by: Moustafa Baiou --- kube-runtime/src/controller/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kube-runtime/src/controller/mod.rs b/kube-runtime/src/controller/mod.rs index 3238830b2..181e20bd7 100644 --- a/kube-runtime/src/controller/mod.rs +++ b/kube-runtime/src/controller/mod.rs @@ -231,7 +231,7 @@ where { let (scheduler_shutdown_tx, scheduler_shutdown_rx) = channel::oneshot::channel(); let err_context = context.clone(); - let (scheduler_tx, scheduler_rx) = channel::mpsc::channel::>>(100); + let (scheduler_tx, scheduler_rx) = channel::mpsc::unbounded::>>(); // Create a stream of ObjectRefs that need to be reconciled trystream_try_via( // input: stream combining scheduled tasks and user specified inputs event