[Bugfix] Log platform plugin detection failures (#52285)
Signed-off-by: Luyi Xiao <xiao.luy@northeastern.edu> Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
co-authored by
OpenAI Codex
parent
c0adee9231
commit
aa71f9bcc4
@@ -1,10 +1,16 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||
import builtins
|
||||
import logging
|
||||
from unittest.mock import mock_open, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from vllm.platforms import _is_amd_zen_cpu, resolve_current_platform_cls_qualname
|
||||
from vllm.platforms import (
|
||||
_is_amd_zen_cpu,
|
||||
cpu_platform_plugin,
|
||||
resolve_current_platform_cls_qualname,
|
||||
)
|
||||
|
||||
|
||||
def test_is_amd_zen_cpu_detects_amd_with_avx512():
|
||||
@@ -57,3 +63,31 @@ def test_cpu_target_selects_cpu_platform_from_non_cpu_wheel(
|
||||
# suffix or host accelerators (a native CI job can reuse a ROCm wheel).
|
||||
version_matches.assert_not_called()
|
||||
rocm_plugin.assert_not_called()
|
||||
|
||||
|
||||
def test_platform_detection_logs_zentorch_import_failure(caplog):
|
||||
original_import = builtins.__import__
|
||||
|
||||
def import_with_broken_zentorch(name, *args, **kwargs):
|
||||
if name == "zentorch":
|
||||
raise OSError("incompatible shared library")
|
||||
return original_import(name, *args, **kwargs)
|
||||
|
||||
with (
|
||||
patch("vllm.platforms.envs.VLLM_TARGET_DEVICE", "cuda"),
|
||||
patch.dict(
|
||||
"vllm.platforms.builtin_platform_plugins",
|
||||
{"cpu": cpu_platform_plugin},
|
||||
clear=True,
|
||||
),
|
||||
patch("vllm.platforms.load_plugins_by_group", return_value={}),
|
||||
patch("vllm.platforms.vllm_version_matches_substr", return_value=True),
|
||||
patch("vllm.platforms._is_amd_zen_cpu", return_value=True),
|
||||
patch.object(builtins, "__import__", side_effect=import_with_broken_zentorch),
|
||||
caplog.at_level(logging.DEBUG, logger="vllm.platforms"),
|
||||
):
|
||||
platform = resolve_current_platform_cls_qualname()
|
||||
|
||||
assert platform == "vllm.platforms.interface.UnspecifiedPlatform"
|
||||
assert "Platform plugin cpu failed during detection" in caplog.text
|
||||
assert "OSError: incompatible shared library" in caplog.text
|
||||
|
||||
@@ -251,7 +251,11 @@ def resolve_current_platform_cls_qualname() -> str:
|
||||
if platform_cls_qualname is not None:
|
||||
activated_plugins.append(name)
|
||||
except Exception:
|
||||
pass
|
||||
logger.debug(
|
||||
"Platform plugin %s failed during detection.",
|
||||
name,
|
||||
exc_info=True,
|
||||
)
|
||||
|
||||
activated_builtin_plugins = list(
|
||||
set(activated_plugins) & set(builtin_platform_plugins.keys())
|
||||
|
||||
Reference in New Issue
Block a user