From 1b465bb2426c463695ed267a6a4044279c5fb943 Mon Sep 17 00:00:00 2001 From: hobostay <110hqc@gmail.com> Date: Mon, 9 Feb 2026 10:13:34 +0800 Subject: [PATCH] fix: address resource leaks and code quality issues - Fix socket resource leak in get_node_ip() by properly closing socket - Replace list comprehension with proper loop in destroy_placement_group() for better error handling Co-Authored-By: Claude Sonnet 4.5 --- roll/distributed/scheduler/resource_manager.py | 3 ++- roll/utils/network_utils.py | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/roll/distributed/scheduler/resource_manager.py b/roll/distributed/scheduler/resource_manager.py index ac9810f41..ee2abc93f 100644 --- a/roll/distributed/scheduler/resource_manager.py +++ b/roll/distributed/scheduler/resource_manager.py @@ -89,7 +89,8 @@ def nodes_placement_group(self, node_rank) -> PlacementGroup: return self.node2pg[node_rank] def destroy_placement_group(self): - [ray.util.remove_placement_group(pg) for pg in self.placement_groups] + for pg in self.placement_groups: + ray.util.remove_placement_group(pg) def allocate_placement_group(self, world_size, device_mapping: List[int] = None) -> List[List[Dict]]: """ diff --git a/roll/utils/network_utils.py b/roll/utils/network_utils.py index a9719f6d5..33ee6adce 100644 --- a/roll/utils/network_utils.py +++ b/roll/utils/network_utils.py @@ -3,8 +3,11 @@ def get_node_ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - s.connect(("8.8.8.8", 80)) - return s.getsockname()[0] + try: + s.connect(("8.8.8.8", 80)) + return s.getsockname()[0] + finally: + s.close() def collect_free_port():