Prhub

#39938 [CI Bug] fix flaky test test_fewer_blocks_with_hma[google/gemma-3-1b-it-512]

原始 PR 作者 yewentao256 合并时间 2026-04-16 05:20 文件变更 1 提交数 1 评论 0 代码增减 +1 / -1

执行摘要

修复 NIXL 连接器 HMA 测试中因 GPU 内存利用率设置过高导致的偶发性失败。

根据PR body中引用的Buildkite CI失败日志,测试test_fewer_blocks_with_hma[google/gemma-3-1b-it-512]因内存不足而失败。具体错误为:Free memory on device cuda:0 (10.93/22.05 GiB) on startup is less than desired GPU memory utilization (0.5, 11.02 GiB)。这表明测试设置的GPU内存利用率(0.5)计算出的请求内存(11.02 GiB)略高于CI环境中的实际空闲内存(10.93 GiB),导致ValueError。修复目的是降低此利用率阈值,使测试在内存波动下更稳定。

该PR变更简单直接,无需精读。对于工程师,可关注其作为解决CI不稳定性问题的范例:通过微调资源相关参数(如内存利用率)来适应测试环境波动,而非修改核心逻辑。

讨论亮点

review评论较少,主要结论是认可变更。gemini-code-assist[bot]指出:“This adjustment likely fine-tunes memory allocation for the test environment.” tlrmchlsmth直接批准。无争议点或未解决疑虑。

实现拆解

  1. 定位并调整测试配置:修改文件tests/v1/kv_connector/unit/test_nixl_connector_hma.py中的test_fewer_blocks_with_hma函数。将llm_kwargs字典中的gpu_memory_utilization键值从0.5改为0.47
  2. 影响分析:此调整仅影响测试执行时的内存分配计算,不改变生产代码逻辑。降低利用率意味着测试初始化时请求的内存减少,从而避免因CI环境内存波动导致的偶发性失败。
  3. 测试配套:本次变更仅涉及测试文件,无其他源码、配置或部署改动。
文件 模块 状态 重要度
tests/v1/kv_connector/unit/test_nixl_connector_hma.py 连接器测试 modified 3.42

关键符号

test_fewer_blocks_with_hma

关键源码片段

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

这是唯一被修改的文件,包含不稳定的测试函数,直接修复了 CI 失败问题。

@pytest.mark.parametrize("model_name, sw_size", [("google/gemma-3-1b-it", 512)])
def test_fewer_blocks_with_hma(monkeypatch, model_name, sw_size):
    """Test that a prefill instance returns fewer "remote blocks" for the SWA groups
    when sequence exceeds the sliding window.
    """
    kv_transfer_config = KVTransferConfig(
        kv_connector="NixlConnector",
        kv_role="kv_both",
    )
    block_size = 16
    llm_kwargs = {
        "model": model_name,
        "enforce_eager": True,
        "gpu_memory_utilization": 0.47, # 从 0.5 调整为 0.47,降低内存利用率阈值,避免 CI 环境内存波动导致测试失败
        "kv_transfer_config": kv_transfer_config,
        "max_model_len": 2048,
        # NOTE: Make sure HMA is enabled
        "disable_hybrid_kv_cache_manager": False,
        "max_num_batched_tokens": 1024,
        "enable_prefix_caching": False,
        "block_size": block_size,
    }
    # ... 后续测试逻辑保持不变

评论区精华

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

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

风险与影响

风险极低。变更仅影响单个测试函数的配置参数,不涉及核心业务逻辑、性能或安全。潜在风险是如果阈值降得过低(如远低于0.47),可能掩盖真实的内存不足问题,但当前从0.5微调至0.47幅度很小,旨在解决环境波动,不影响测试意图。

影响范围:仅限于CI测试稳定性。影响程度:低。修复后,该特定测试在内存受限的CI环境中应不再偶发失败,提高测试套件的可靠性。对用户、系统或团队无其他影响。

测试环境依赖

关联 Issue

#19 Use FP32 for log probabilities

完整报告

参与讨论