diff --git a/crates/query-gateway/src/client.rs b/crates/query-gateway/src/client.rs index 73aee42..96fb60c 100644 --- a/crates/query-gateway/src/client.rs +++ b/crates/query-gateway/src/client.rs @@ -185,6 +185,7 @@ impl NetworkState { } pub fn greylist_worker(&mut self, worker_id: PeerId) { + log::info!("Grey-listing worker {worker_id}"); self.worker_greylist.insert(worker_id, Instant::now()); } @@ -389,6 +390,18 @@ impl QueryHandler { ); let (query_id, task) = task_entry.remove_entry(); + // Greylist worker if server error occurred during query execution + match &result { + query_result::Result::ServerError(e) => { + log::warn!("Server error returned for query {query_id}: {e}"); + self.network_state + .write() + .await + .greylist_worker(task.worker_id); + } + _ => {} + } + if self.send_metrics { let metrics_msg = Msg::QueryFinished(QueryFinished { client_id: self.local_peer_id.to_string(),