houqp commented on a change in pull request #1983:
URL: https://github.com/apache/arrow-datafusion/pull/1983#discussion_r824416389



##########
File path: ballista/rust/scheduler/src/scheduler_server/event_loop.rs
##########
@@ -50,32 +47,53 @@ impl<T: 'static + AsLogicalPlan, U: 'static + 
AsExecutionPlan>
     pub fn new(
         state: Arc<SchedulerState<T, U>>,
         executors_client: ExecutorsClient,
+        is_test: bool,
     ) -> Self {
         Self {
             state,
             executors_client,
+            is_test,
         }
     }
 
-    async fn offer_resources(
-        &self,
-        job_id: String,
-    ) -> Result<Option<SchedulerServerEvent>> {
-        let mut available_executors = 
self.state.get_available_executors_data();
+    async fn offer_resources(&self, n: u32) -> 
Result<Option<SchedulerServerEvent>> {
+        let mut available_executors = if self.is_test {

Review comment:
       IMO, setting flags specific for tests in application logic is usually 
not an anti-pattern. It makes the code harder to read and adds unnecessary 
runtime overhead. If I understand it correctly, the main problem is we don't 
have executor heartbeats in tests causing `get_alive_executors` to return an 
empty set? If so, I would recommend adding a helper method to set artificial 
executor heartbeats directly from tests so we can keep the core logic agnostics 
to tests.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to