Skip to content

Commit 554af92

Browse files
authored
[Bugfix] use AF_INET6 for OpenAI Compatible Server with ipv6 (#9583)
Signed-off-by: xiaozijin <[email protected]>
1 parent b2e0ad3 commit 554af92

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

vllm/entrypoints/openai/api_server.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from contextlib import asynccontextmanager
1313
from functools import partial
1414
from http import HTTPStatus
15-
from typing import AsyncIterator, Optional, Set
15+
from typing import AsyncIterator, Optional, Set, Tuple
1616

1717
import uvloop
1818
from fastapi import APIRouter, FastAPI, Request
@@ -57,7 +57,8 @@
5757
from vllm.entrypoints.openai.tool_parsers import ToolParserManager
5858
from vllm.logger import init_logger
5959
from vllm.usage.usage_lib import UsageContext
60-
from vllm.utils import FlexibleArgumentParser, get_open_zmq_ipc_path
60+
from vllm.utils import (FlexibleArgumentParser, get_open_zmq_ipc_path,
61+
is_valid_ipv6_address)
6162
from vllm.version import __version__ as VLLM_VERSION
6263

6364
if envs.VLLM_USE_V1:
@@ -568,6 +569,18 @@ def init_app_state(
568569
)
569570

570571

572+
def create_server_socket(addr: Tuple[str, int]) -> socket.socket:
573+
family = socket.AF_INET
574+
if is_valid_ipv6_address(addr[0]):
575+
family = socket.AF_INET6
576+
577+
sock = socket.socket(family=family, type=socket.SOCK_STREAM)
578+
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
579+
sock.bind(addr)
580+
581+
return sock
582+
583+
571584
async def run_server(args, **uvicorn_kwargs) -> None:
572585
logger.info("vLLM API server version %s", VLLM_VERSION)
573586
logger.info("args: %s", args)
@@ -584,9 +597,8 @@ async def run_server(args, **uvicorn_kwargs) -> None:
584597
# workaround to make sure that we bind the port before the engine is set up.
585598
# This avoids race conditions with ray.
586599
# see https://github.com/vllm-project/vllm/issues/8204
587-
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
588-
sock.bind((args.host or "", args.port))
589-
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
600+
sock_addr = (args.host or "", args.port)
601+
sock = create_server_socket(sock_addr)
590602

591603
def signal_handler(*_) -> None:
592604
# Interrupt server on sigterm while initializing

0 commit comments

Comments
 (0)