From daa21d8d6b0330bf855007406da41709459ed452 Mon Sep 17 00:00:00 2001 From: Chi-Sheng Liu Date: Tue, 25 Feb 2025 18:54:08 +0800 Subject: [PATCH] Address comments: filter live nodes for get_all_node_info Signed-off-by: Chi-Sheng Liu --- python/ray/dashboard/state_aggregator.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/python/ray/dashboard/state_aggregator.py b/python/ray/dashboard/state_aggregator.py index 749b58f27d49..b04ee138dee1 100644 --- a/python/ray/dashboard/state_aggregator.py +++ b/python/ray/dashboard/state_aggregator.py @@ -34,7 +34,6 @@ protobuf_to_task_state_dict, ) from ray.util.state.state_manager import DataSourceUnavailable, StateDataSourceClient -from ray.core.generated.gcs_pb2 import GcsNodeInfo logger = logging.getLogger(__name__) @@ -364,7 +363,9 @@ async def list_objects(self, *, option: ListApiOptions) -> ListApiResponse: object_data_in_dict's schema is in ObjectState """ all_node_info_reply = await self._client.get_all_node_info( - timeout=option.timeout, limit=None + timeout=option.timeout, + limit=None, + filters=[("state", "=", "ALIVE")], ) tasks = [ self._client.get_object_info( @@ -476,14 +477,15 @@ async def list_runtime_envs(self, *, option: ListApiOptions) -> ListApiResponse: We don't have id -> data mapping like other API because runtime env doesn't have unique ids. """ - all_node_info_reply = await self._client.get_all_node_info( - timeout=option.timeout, limit=None + live_node_info_reply = await self._client.get_all_node_info( + timeout=option.timeout, + limit=None, + filters=[("state", "=", "ALIVE")], ) node_infos = [ node_info - for node_info in all_node_info_reply.node_info_list - if node_info.state == GcsNodeInfo.GcsNodeState.ALIVE - and node_info.runtime_env_agent_port is not None + for node_info in live_node_info_reply.node_info_list + if node_info.runtime_env_agent_port is not None ] tasks = [ self._client.get_runtime_envs_info(