diff --git a/cas/scheduler/grpc_scheduler.rs b/cas/scheduler/grpc_scheduler.rs index 63ababfbe..27f1fbb34 100644 --- a/cas/scheduler/grpc_scheduler.rs +++ b/cas/scheduler/grpc_scheduler.rs @@ -66,7 +66,12 @@ impl GrpcScheduler { log::info!("Client disconnected in GrpcScheduler"); return; } - Ok(Some(response)) = result_stream.message() => { + response = result_stream.message() => { + // When the upstream closes the channel, close the + // downstream too. + let Ok(Some(response)) = response else { + return; + }; match response.try_into() { Ok(response) => { if let Err(err) = tx.send(Arc::new(response)) {