From e4c47a2569f96c59977a86070dcecaa7b37ca521 Mon Sep 17 00:00:00 2001 From: tzhouam Date: Sat, 5 Sep 2026 14:48:28 +0800 Subject: [PATCH] rebase: align vllm-omni with vLLM d2906cc19586 Signed-off-by: tzhouam --- docker/Dockerfile.ci | 4 +-- tests/platforms/test_platform_detection.py | 38 ++++++++++++++++++++++ vllm_omni/engine/arg_utils.py | 4 +-- vllm_omni/platforms/__init__.py | 8 +++-- 4 files changed, 48 insertions(+), 6 deletions(-) create mode 100644 tests/platforms/test_platform_detection.py diff --git a/docker/Dockerfile.ci b/docker/Dockerfile.ci index e81055036..363e2b9b0 100644 --- a/docker/Dockerfile.ci +++ b/docker/Dockerfile.ci @@ -1,4 +1,4 @@ -# Target vllm version: releases/v0.29.0 @ f5c3cc240bc1, installed on top of +# Target vllm version: releases/v0.29.0 @ d2906cc19586, installed on top of # the v0.28.0 base image via the precompiled wheel pinned below. The pin and # base intentionally differ until an official v0.29.0 base image is published. # @@ -57,7 +57,7 @@ RUN uv pip install --system -e ".[dev]" # (e.g. +gaeee7ef93.cu130) which pip/uv refuse to install from a PEP 503 package index. # The cu130 wheel index lives at //cu130/vllm/ but the actual wheel files # are stored at the top level //. -ENV VLLM_PRECOMPILED_WHEEL_COMMIT=f5c3cc240bc1fc0519694fe689edb87dee8dfd92 +ENV VLLM_PRECOMPILED_WHEEL_COMMIT=d2906cc1958658f296aeee8b248deea684f56add # Keep the base image's CUDA toolkit libs on the loader path. This does NOT by # itself guarantee libnvJitLink.so.13 resolves — the .so.13 JIT linker is # handled separately via ldconfig after the cu130 wheels are installed (see the diff --git a/tests/platforms/test_platform_detection.py b/tests/platforms/test_platform_detection.py new file mode 100644 index 000000000..6673a2376 --- /dev/null +++ b/tests/platforms/test_platform_detection.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project + +import logging + +import pytest + +import vllm_omni.platforms as platforms + +pytestmark = [pytest.mark.core_model, pytest.mark.cpu] + + +def test_failing_oot_plugin_is_logged_and_falls_back(monkeypatch, caplog): + plugin_name = "raising_oot_plugin" + + def raising_plugin(): + raise RuntimeError("injected platform detection failure") + + monkeypatch.setattr(platforms, "builtin_omni_platform_plugins", {}) + monkeypatch.setattr( + platforms, + "load_omni_plugins_by_group", + lambda _group: {plugin_name: raising_plugin}, + ) + + target_logger = logging.getLogger(platforms.__name__) + target_logger.addHandler(caplog.handler) + previous_level = target_logger.level + target_logger.setLevel(logging.DEBUG) + try: + platform_cls = platforms.resolve_current_omni_platform_cls_qualname() + finally: + target_logger.removeHandler(caplog.handler) + target_logger.setLevel(previous_level) + + assert platform_cls == "vllm_omni.platforms.interface.UnspecifiedOmniPlatform" + assert plugin_name in caplog.text + assert "RuntimeError: injected platform detection failure" in caplog.text diff --git a/vllm_omni/engine/arg_utils.py b/vllm_omni/engine/arg_utils.py index bd6a71562..44bd9058c 100644 --- a/vllm_omni/engine/arg_utils.py +++ b/vllm_omni/engine/arg_utils.py @@ -443,8 +443,8 @@ class OmniEngineArgs(EngineArgs): @dataclass class OmniAsyncEngineArgs(AsyncEngineArgs, OmniEngineArgs): @classmethod - def add_cli_args(cls, parser: argparse.ArgumentParser) -> argparse.ArgumentParser: - parser = AsyncEngineArgs.add_cli_args(parser) + def add_cli_args(cls, parser: argparse.ArgumentParser, async_args_only: bool = False) -> argparse.ArgumentParser: + parser = AsyncEngineArgs.add_cli_args(parser, async_args_only=async_args_only) parser = OmniEngineArgs._add_omni_specific_args(parser) return parser diff --git a/vllm_omni/platforms/__init__.py b/vllm_omni/platforms/__init__.py index 942eb7c24..d5ee64353 100644 --- a/vllm_omni/platforms/__init__.py +++ b/vllm_omni/platforms/__init__.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project +# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project import logging import traceback @@ -142,7 +142,11 @@ def resolve_current_omni_platform_cls_qualname() -> str: if platform_cls_qualname is not None: activated_plugins.append(name) except Exception: - pass + logger.debug( + "OmniPlatform plugin %s failed during detection.", + name, + exc_info=True, + ) activated_builtin_plugins = list(set(activated_plugins) & set(builtin_omni_platform_plugins.keys())) activated_oot_plugins = list(set(activated_plugins) & set(platform_plugins.keys()))