Skip to content

Commit

Permalink
fix applier hangs which can happen with many watched objects (kube-rs…
Browse files Browse the repository at this point in the history
…#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 <moustafab.ccit@gmail.com>
  • Loading branch information
moustafab authored Jun 3, 2022
1 parent 80272c0 commit c9e0c97
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion kube-runtime/src/controller/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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::<ScheduleRequest<ReconcileRequest<K>>>(100);
let (scheduler_tx, scheduler_rx) = channel::mpsc::unbounded::<ScheduleRequest<ReconcileRequest<K>>>();
// Create a stream of ObjectRefs that need to be reconciled
trystream_try_via(
// input: stream combining scheduled tasks and user specified inputs event
Expand Down

0 comments on commit c9e0c97

Please sign in to comment.