[fix]:[FL-48][it looks like wine32 is missing]

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
chengkai3
2026-06-08 22:16:02 +08:00
parent de63459173
commit 23980a3cf3
7 changed files with 146 additions and 26 deletions
+28
View File
@@ -64,3 +64,31 @@
- 风险与关注点:
- 由于部署链路复用同一个后端镜像,本次会同时影响 `api/celery-worker/celery-beat/flower` 的基础镜像体积,而不只是 `celery-worker`
## Work Log - 修正 Wine 缺少 wine32 时的误报(2026-06-08
- 背景:
- 当前环境里 `wine --version` 会输出 `it looks like wine32 is missing`,但后端 `/api/v1/wine/status` 之前只按返回码判定,可能把半可用环境误报成“可用”。
- `ATP` 的 Wine 引擎状态也复用同一 Wine 二进制,存在同类误报风险。
- 本次处理:
- `api/app/services/wine_probe.py`
- 新增共享 Wine 探测 helper,统一将 `wine32 is missing` 识别为不可用状态。
- `api/app/services/wine_service.py`
- Wine 状态接口与测试执行前校验改为复用共享探测 helper。
- `api/app/services/atp_model_service.py`
- ATP Wine 引擎状态与执行前校验同步复用共享探测 helper。
- `api/Dockerfile`
- 构建阶段显式开启 `i386` 并安装 `wine32:i386`,避免镜像只装到半套 Wine 运行时。
- `api/tests/test_wine_probe.py`
- 新增针对 `wine32 is missing` 误报场景的最小单测。
- 验证:
- 变更前基线:`python3 -m pytest api/tests/test_fl_analysis_external.py``python3 -m pytest api/tests/test_fl_analysis_service.py` 因本地运行环境缺少 `pytest/sqlalchemy` 无法执行。
- 变更后执行:
- `python3 -m py_compile api/app/services/wine_probe.py api/app/services/wine_service.py api/app/services/atp_model_service.py api/tests/test_wine_probe.py` 通过。
- `./.venv/bin/python -m pytest api/tests/test_wine_probe.py` 通过(3 passed)。
- `git diff --check` 通过。
- 风险与关注点:
- 当前本地环境仍不具备完整后端依赖,无法直接回归所有 FastAPI/SQLAlchemy 相关测试;本次验证聚焦在 Wine 探测逻辑和语法层面。