执行摘要
修复 tracing 测试在不同平台上的段错误
CI 构建(如 Buildkite 75740)中非 ROCm 平台上的 tracing 测试因 gRPC 线程 fork 安全问题间歇性 segfault。之前仅在 ROCm 条件下修复,但问题不限于 ROCm。
简单安全的 bugfix,建议合并。无需深入审查,但值得存档作为 gRPC fork 安全问题的参考。
无 review 评论或讨论,仅 Claude bot 自动评论且未交互。hmellor 直接批准。
CI 构建(如 Buildkite 75740)中非 ROCm 平台上的 tracing 测试因 gRPC 线程 fork 安全问题间歇性 segfault。之前仅在 ROCm 条件下修复,但问题不限于 ROCm。
简单安全的 bugfix,建议合并。无需深入审查,但值得存档作为 gRPC fork 安全问题的参考。
无 review 评论或讨论,仅 Claude bot 自动评论且未交互。hmellor 直接批准。
tests/v1/tracing/test_tracing.py 的 test_traces 函数中,删除 if current_platform.is_rocm() 条件,使 VLLM_WORKER_MULTIPROC_METHOD=spawn 设置对所有平台生效。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
tests/v1/tracing/test_tracing.py |
追踪 | modified | 3.84 |
tests/v1/tracing/test_tracing.py
test-coverage
唯一变更文件,移除平台条件使其总是设置 spawn 模式,从而修复跨平台 segfault。
def test_traces(
monkeypatch: pytest.MonkeyPatch,
trace_service: FakeTraceService,
):
with monkeypatch.context() as m:
m.setenv(OTEL_EXPORTER_OTLP_TRACES_INSECURE, "true")
# 修复:gRPC C-core 在 fork 时不安全,因此总是使用 spawn 模式
# 之前仅对 ROCm 设置,但问题不限于 ROCm
m.setenv("VLLM_WORKER_MULTIPROC_METHOD", "spawn")
# ... 其余测试逻辑保持不变
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
风险极低。变更仅影响单测环境变量设置,且 spawn 是 Python 多进程的跨平台安全模式,不会影响生产代码。可能轻微增加测试启动时间(spawn 比 fork 稍慢),但预计可忽略。
影响范围限于测试稳定性。确保 tracing 测试在所有 CI 平台上可靠运行,消除 ROCm 和 CUDA/CPU 环境之间的行为差异。对用户无影响,对系统性能无影响。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论