Fix DP attention worker port binding for IPv6 support (#21917)
Signed-off-by: Shiyan Deng <dsy842974287@meta.com>
This commit is contained in:
@@ -53,7 +53,12 @@ from sglang.srt.utils.common import (
|
||||
kill_itself_when_parent_died,
|
||||
maybe_reindex_device_id,
|
||||
)
|
||||
from sglang.srt.utils.network import NetworkAddress, bind_port, get_zmq_socket
|
||||
from sglang.srt.utils.network import (
|
||||
NetworkAddress,
|
||||
bind_port,
|
||||
get_zmq_socket,
|
||||
get_zmq_socket_on_host,
|
||||
)
|
||||
from sglang.srt.utils.torch_memory_saver_adapter import TorchMemorySaverAdapter
|
||||
from sglang.srt.utils.watchdog import Watchdog
|
||||
from sglang.utils import TypeBasedDispatcher, get_exception_traceback
|
||||
@@ -372,14 +377,26 @@ class DataParallelController:
|
||||
def launch_dp_attention_schedulers(
|
||||
self, server_args: ServerArgs, port_args: PortArgs
|
||||
):
|
||||
if server_args.dist_init_addr is None:
|
||||
bind_host = "127.0.0.1"
|
||||
else:
|
||||
bind_host = NetworkAddress.parse(server_args.dist_init_addr).host
|
||||
|
||||
# Pre-allocate worker ports on node 0 to avoid conflicts
|
||||
worker_ports = []
|
||||
if server_args.node_rank == 0:
|
||||
for dp_rank in range(server_args.dp_size):
|
||||
port_and_socket = get_zmq_socket(self.context, zmq.PUSH)
|
||||
worker_ports.append(port_and_socket[0])
|
||||
self.workers[dp_rank] = port_and_socket[1]
|
||||
logger.debug(f"Assigned port {port_and_socket[0]} to worker {dp_rank}")
|
||||
worker_port, worker_socket = get_zmq_socket_on_host(
|
||||
self.context, zmq.PUSH, host=bind_host
|
||||
)
|
||||
worker_ports.append(worker_port)
|
||||
self.workers[dp_rank] = worker_socket
|
||||
logger.debug(
|
||||
"Assigned port %s to worker %s on host %s",
|
||||
worker_port,
|
||||
dp_rank,
|
||||
bind_host,
|
||||
)
|
||||
|
||||
broadcasted_ports = self._broadcast_worker_ports(
|
||||
server_args, worker_ports if worker_ports else None
|
||||
|
||||
Reference in New Issue
Block a user