Skip to content

Showcase Smoke 定时任务 30 次里 16 次失败(三个图表面板拿不到 chart SVG),且诊断产物上传路径写错 —— 每次失败都无法事后定位 #4931

Closed

Description

@os-zhuang

两个独立缺陷

1. 三个图表面板持续失败

run 30796529117(2026-08-03 08:12):

3 failed
  [chromium] › e2e/showcase-smoke.spec.ts:47:7 › surface renders cleanly: Delivery Operations
  [chromium] › e2e/showcase-smoke.spec.ts:47:7 › surface renders cleanly: Chart Gallery
  [chromium] › e2e/showcase-smoke.spec.ts:47:7 › surface renders cleanly: Command Center
31 passed (4.9m)

断言点是 showcase-smoke.spec.ts:65:

const box = await svg.boundingBox();
expect(box, `${surface.name}: no chart SVG`).not.toBeNull();
// >0 alone previously passed even on a collapsed ~130px-wide chart panel

失败的三个全是带图表的面板,其余 31 项通过。定时运行的历史:30 次里 16 次失败,最近连续两天(08-02、08-03)都红,而 07-30 / 07-31 / 08-01 是绿的 —— 时红时绿,不是一次性环境问题。到底是渲染回归还是探测条件不稳,需要看 trace 才能判断,而这正好被第 2 个缺陷挡住了。

2. 诊断产物从未上传

##[warning]No files were found with the provided path: examples/app-showcase/playwright-report/.
          No artifacts will be uploaded.

上传步骤配的是 examples/app-showcase/playwright-report/,而 Playwright 实际把截图、trace、error-context 写在 test-results/ 下:

test-results/showcase-smoke-surface-renders-cleanly-Command-Center-chromium-retry1/test-failed-1.png
test-results/showcase-smoke-surface-renders-cleanly-Command-Center-chromium-retry1/trace.zip
test-results/showcase-smoke-surface-renders-cleanly-Command-Center-chromium-retry1/error-context.md

if-no-files-found: warn 让这个错配只是一条 warning,于是每一次失败的证据都在 runner 回收时丢掉了。这也解释了为什么一个半数失败的探针能长期无人处理 —— 想查也查不了。

第 2 条应当先修:它是第 1 条的前提。修好之后下一次夜跑就会留下 trace,届时才谈得上判断图表面板到底怎么了。

建议

  • 上传路径改为同时覆盖 playwright-report/ 与 test-results/(或改成 Playwright 配置里实际的 outputDir);
  • if-no-files-found 在测试失败的前提下应为 error —— 失败却没有产物本身就是一个应当报警的状态,而不是 warning。

Activity

  1. os-zhuang commented on Aug 5, 2026

    @os-zhuang
    ContributorAuthor

    分诊:pm:queue + domain:devx。

    • 落点锚定:.github/workflows/showcase-smoke.yml(CI 工作流/门禁类归 domain:devx 的 scripts/门禁行)。过时前提检查(origin/main 实测):上传步骤仍是 path: examples/app-showcase/playwright-report/ 且无 test-results/,缺陷 2 前提成立。
    • 派发范围建议:本单先只修缺陷 2(上传路径补 test-results/ 或按 Playwright outputDir 对齐;失败时 if-no-files-found: error)—— issue 自己已论证它是缺陷 1 的前提。缺陷 1(三个图表面板时红时绿)在拿到第一份 trace 之前不可诊断,修完 2 之后等夜跑产物再回来定性,不要在同一单里盲改探测条件。
    • 查重:三仓无 showcase-smoke 产物上传相关影子单;driver-mongodb 测试:两个套件并发下载 MongoDB 二进制,mongodb-memory-server 的 rename 竞态让全绿测试 exit 1(队列 flaky) #5517(mongodb 二进制下载竞态)是另一族 CI flaky,不重叠。

    本评论来自分诊座位 Routine(#5474 试点),不构成认领。


    Generated by Claude Code

  2. self-assigned this
    on Aug 6, 2026
  3. os-zhuang commented on Aug 6, 2026

    @os-zhuang
    ContributorAuthor

    Claim(PM devx 车道):本单由本 PM 会话派发实现,范围仅第 2 缺陷(诊断产物上传路径 + if-no-files-found 升级)。

    • Session:session_01GX3sL71LFq8m2usg6VqTSE
    • 分支:claude/issue-4931-smoke-artifacts
    • 按 issue 自己的排序:第 2 缺陷是第 1 缺陷(三个图表面板时红时绿)的前提——修好后下一次夜跑才会留下 trace。本次 PR 不 Close 本单;第 1 缺陷待产物到位后另行诊断,届时本单转 pm:blocked(重启条件:下一次定时运行产出 artifacts)。

    Generated by Claude Code

  4. os-zhuang commented on Aug 6, 2026

    @os-zhuang
    ContributorAuthor

    状态更新(PM devx 车道,session session_01GX3sL71LFq8m2usg6VqTSE):pm:dispatched → pm:blocked。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions