# PR #38796 完整报告

- 仓库：`sgl-project/sglang`
- 标题：docker(xpu): install libssl-dev so JIT hicache_hash_cpp builds
- 合并时间：2026-09-10 14:37
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/38796

---

## 执行摘要
此 PR 修复了 XPU CI 环境中因缺少 OpenSSL 开发头文件导致 JIT 编译 `hicache_hash_cpp` C++ 扩展失败的问题。变更包括在 `docker/xpu.Dockerfile` 中添加 `libssl-dev` 依赖，并在 CI 工作流中添加临时桥接修复以确保当前 PR 测试通过。

## 功能与动机
动机源于 XPU CI 中执行 Mamba radix 缓存相关测试（如 `test_mamba_radix_cache_kv_events`）时失败。错误日志显示 `fatal error: openssl/sha.h: No such file or directory`，表明 JIT 构建的 `hicache_hash_cpp` C++ 扩展需要 OpenSSL 头文件。这与 PR #34767 中修复 Xeon 镜像的问题相同，但未涵盖 XPU 镜像。

## 实现拆解

变更分为两部分：
1. **根本修复**：在 `docker/xpu.Dockerfile` 的 `apt-get install` 命令中添加 `libssl-dev` 包。这确保了新构建的 XPU 镜像包含 OpenSSL 开发头文件，使 JIT 编译能够成功。
2. **临时桥接修复**：在 `.github/workflows/pr-test-xpu.yml` 的两个测试作业（`stage-a-test-1-gpu-xpu` 和 `stage-a-test-2-gpu-xpu`）的“Install Dependency”步骤中，添加在运行容器内通过 `apt-get install` 安装 `libssl-dev` 的命令。这是因为 CI 使用的是预构建的 `intel/sglang-dev:latest` 镜像，Dockerfile 的更改尚未生效，需要临时在容器中安装依赖以确保当前 PR 的测试能通过。

### 无关键源码片段。此 PR 仅涉及 Dockerfile 和 CI 工作流配置的微小变更。

## 评论区精华
无讨论。PR 被直接批准合并。

## 风险与影响
- **风险**：低。变更仅影响 XPU Docker 镜像和 CI 工作流，不涉及核心运行时代码。主要风险是临时桥接修复未按计划移除，导致 CI 脚本冗余。
- **影响**：直接影响 XPU CI 环境，使依赖 OpenSSL 的 JIT 编译扩展（如 `hicache_hash_cpp`）能够成功构建。间接影响使用 XPU Docker 镜像的开发者，确保环境一致性。

## 关联脉络
此 PR 是 PR #34767（修复 Xeon 镜像中相同问题）的后续，将修复逻辑扩展到 XPU 平台。两者共同解决了不同 Docker 镜像中缺失 OpenSSL 依赖导致 JIT 编译失败的一致性问题。