Prhub

#41076 [CI][AMD][BugFix] Update request URL in test_moriio_connector to match vllm-router compatibility changes

原始 PR 作者 rasmith 合并时间 2026-04-29 02:14 文件变更 1 提交数 1 评论 1 代码增减 +18 / -8

执行摘要

修复 moriio 连接器测试的请求 URL 格式

PR #39565 修改了 moriio KV 连接器,使其兼容 vllm-router,改变了请求 URL 格式以包含 prefill、decode 和 uuid 值。但 test_moriio_connector 中的测试未更新,生成的请求未包含 URL 变更以保持兼容性。此 PR 更新测试以生成与新模式匹配的请求,避免回归。

此 PR 为纯粹的测试兼容性修复,变更清晰直接,值得快速合入以确保 CI 健康。可精读的亮点在于通过调整 request_id 构造时机,避免了调度器内部缓存不一致的潜在问题。

实现拆解

  1. 新增 uuid 导入:在 tests/v1/kv_connector/unit/test_moriio_connector.py 文件顶部添加 import uuid
  2. 修改 _setup_kv_transfer_request 辅助函数:在更新 kv_transfer_params 后,构造 ZMQ 地址字符串 zmq_addr,生成随机 UUID,并将 request.request_id 设置为 f"___prefill_addr_{zmq_addr}___decode_addr_{zmq_addr}_{fake_uuid}"
  3. 调整三个测试用例的执行顺序:将 _setup_kv_transfer_request(request) 的调用从 scheduler.add_request(request) 之后移到之前,确保 request_id 在请求加入调度器之前就已包含正确的格式,避免调度器内部使用旧 ID 导致不一致。受影响的测试包括 test_write_mode_saves_local_block_idstest_write_mode_with_chunked_prefill_saves_local_block_idstest_read_mode_loads_remote_block_ids
文件 模块 状态 重要度
tests/v1/kv_connector/unit/test_moriio_connector.py KV 连接器 modified 5.55

关键符号

_setup_kv_transfer_request test_write_mode_saves_local_block_ids test_write_mode_with_chunked_prefill_saves_local_block_ids test_read_mode_loads_remote_block_ids

关键源码片段

tests/v1/kv_connector/unit/test_moriio_connector.py test-coverage

所有变更集中于此文件,包括新增 uuid 导入、修改 _setup_kv_transfer_request 以嵌入 ZMQ 地址和 UUID 到 request_id,以及调整三个测试用例的调用顺序,确保测试请求格式与 vllm-router 兼容。

def _setup_kv_transfer_request(
    request, remote_host="127.0.0.1", fake_port=4789, fake_transfer_id="0"
):
    """Setup KV transfer parameters for a request."""
    # 更新 kv_transfer_params,填充测试用的远程地址和端口等元数据
    request.kv_transfer_params.update(
        {
            "transfer_id": fake_transfer_id,
            "remote_notify_port": fake_port,
            "remote_block_ids": None,
            "remote_host": remote_host,
            "remote_port": fake_port,
            "remote_handshake_port": fake_port,
            "remote_engine_id": "test_engine",
        }
    )
    # 构造 ZMQ 地址字符串,格式与 vllm-router 兼容
    zmq_addr = f"host:{remote_host},handshake:{fake_port},notify:{fake_port}"
    fake_uuid = uuid.uuid4().hex # 生成随机 UUID
    # 将 ZMQ 地址和 UUID 嵌入 request_id,以匹配生产代码中的 URL 格式
    request.request_id = (
        f"___prefill_addr_{zmq_addr}___decode_addr_{zmq_addr}_{fake_uuid}"
    )
    return request

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。变更仅涉及测试文件,未修改生产代码。但需注意新 request_id 格式依赖于 _setup_kv_transfer_request 的调用时机,若未来测试用例复用此辅助函数但未遵循调用顺序,可能出现请求 ID 不包含预期格式的问题。

影响范围仅限于 moriio KV 连接器的单元测试,确保测试请求 URL 格式与生产代码兼容,避免 CI 因格式不匹配而失败。对用户和系统无直接影响。

仅测试变更

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论