feat(worker): ffmpeg渲染失败时捕获stderr写入error_detail,增强排障能力
AI Code Review / AI Code Review (pull_request) Failing after 32s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 22s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been cancelled
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Frontend Lint (pull_request) Has been cancelled
Auto Merge CI PRs / Auto Merge on CI Green + Approved (pull_request) Successful in 17m53s
Auto Approve CI PRs / Auto Approve on CI Green (pull_request) Successful in 19m11s
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Failing after 1462h22m7s
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Failing after 1462h22m9s
CI Build & Deploy Pipeline / Deploy Production (pull_request) Failing after 1462h22m7s
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Failing after 1462h22m9s
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Failing after 1462h22m11s
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Failing after 1462h22m9s
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Failing after 1462h22m9s
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Failing after 1462h22m11s
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1462h22m9s
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Failing after 1462h54m9s
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Failing after 1462h54m11s

- RenderAdapterResult新增error_detail字段存完整stderr
- render_adapter单独捕获CalledProcessError,把stderr写入error_message和error_detail
- edit_plan_generation失败时把error_detail拼进gen_task.error_message
- 新增test_ffmpeg_error_captures_stderr测试
- 35个render_adapter测试全绿
This commit is contained in:
CI Bot
2026-07-17 17:07:14 +08:00
parent e0bd51027d
commit 9b99c46d7d
3 changed files with 54 additions and 1 deletions
@@ -16,6 +16,7 @@
from __future__ import annotations
import logging
import subprocess
import tempfile
from dataclasses import dataclass
from pathlib import Path
@@ -70,6 +71,7 @@ class RenderAdapterResult:
rendered_clip_ids: list[str] = None # 成功渲染的 clip id 列表
failed_clip_ids: list[str] = None # 失败的 clip id 列表
error_message: str = ""
error_detail: str = "" # 详细错误信息(如 ffmpeg stderr),用于排查
def __post_init__(self):
if self.rendered_clip_ids is None:
@@ -249,6 +251,20 @@ class RenderAdapter:
failed_clip_ids=failed_clip_ids,
)
except subprocess.CalledProcessError as exc:
stderr_text = (exc.stderr or "").strip()
logger.error(
"[render-adapter] ffmpeg渲染失败: plan_id=%s job_id=%s exit_code=%d\nstderr:\n%s",
plan_id,
job_id,
exc.returncode,
stderr_text[:3000],
)
return RenderAdapterResult(
success=False,
error_message=f"FFmpeg渲染失败(exit={exc.returncode}): {stderr_text[:200]}",
error_detail=stderr_text[:3000],
)
except Exception as exc:
logger.exception(
"[render-adapter] render failed: plan_id=%s job_id=%s engine=unified error=%s",