Repository navigation
fix(reliability): handle closed diagnostics and harden test fixtures - #725
lanyue-llk wants to merge 1 commit into
Conversation
Sequential Navigation Soak A/B✅ HEAD completed the 200-navigation resilience and memory observation. One browser process, one target, and one CDP session navigate CSDN → SegmentFault → Huaban → example.com repeatedly. This run issued 200 Common ancestor Session resilience
A public-page failure is reported separately from an unrecoverable session. The soak requires all navigation attempts, zero failed recovery, zero lifecycle/network ordering violations, and complete resource evidence. Process-tree memory
HEAD memory by 50-navigation quarter
Raw reports and per-navigation boundary samples: workflow run and full Public-site timing and memory are observational. Use the A/B deltas and trend shape as evidence, not as a deterministic performance threshold. |
Spider Bench A/B✅ All benchmark browser service runs completed; results are informational. Public HEAD: 189 / 240 rows; 39 / 48 sites produced rows; 9 unexpected empty sites. ✅ Deterministic fixture contract is clean. Common ancestor Public 48-site run · informational
Public-site content, timing, and memory are noisy. This single A/B run reports evidence only; site outcome counts explain missing rows without treating them as a deterministic regression. CPU and memory timelinesThese are bounded 40-point views of the same complete process-tree samples used by the HTML report. CPU uses 100% per occupied logical core; memory lines are RSS first and PSS second when complete PSS samples are available. Basexychart-beta
title "Base CPU"
x-axis "Elapsed seconds" [1.547, 2.549, 3.05, 4.551, 6.052, 7.555, 9.056, 10.557, 12.06, 13.562, 14.562, 16.064, 17.564, 19.067, 20.569, 22.072, 23.573, 25.074, 26.576, 27.077, 28.077, 29.581, 31.083, 32.585, 34.087, 35.589, 37.091, 38.591, 40.093, 41.095, 42.596, 44.097, 45.598, 47.1, 48.601, 50.102, 51.604, 52.605]
y-axis "CPU percent" 0 --> 500
line [115.89, 105.86, 101.83, 79.99, 175.96, 159.59, 77.97, 163.82, 113.93, 65.92, 108.01, 0, 2, 87.84, 6, 33.92, 173.82, 123.94, 119.7, 99.91, 131.85, 103.8, 143.81, 149.85, 115.87, 17.96, 83.79, 41.97, 71.94, 145.83, 111.99, 4, 102.04, 123.81, 65.95, 99.93, 133.92, 193.8]
xychart-beta
title "Base memory: RSS then PSS"
x-axis "Elapsed seconds" [0.044, 1.547, 2.549, 3.05, 4.551, 6.052, 7.555, 9.056, 10.557, 12.06, 13.562, 14.562, 16.064, 17.564, 19.067, 20.569, 22.072, 23.573, 25.074, 26.576, 27.077, 28.077, 29.581, 31.083, 32.585, 34.087, 35.589, 37.091, 38.591, 40.093, 41.095, 42.596, 44.097, 45.598, 47.1, 48.601, 50.102, 51.604, 52.605, 53.091]
y-axis "Memory MiB" 0 --> 500
line [12.12, 107.49, 111.63, 116.66, 127.55, 145.28, 164.77, 178.4, 162.89, 158.65, 170.92, 186.45, 165.65, 142.94, 157.61, 146.13, 141.54, 163.15, 158.71, 204.52, 264.63, 193.14, 212.74, 168.65, 173.21, 162.89, 143.94, 144.91, 146.83, 150.64, 155.36, 166.38, 150.1, 159.81, 176.25, 148.55, 151.03, 162.1, 188.36, 0]
line [8.57, 103.8, 108.08, 113.34, 124.01, 141.85, 161.31, 174.95, 159.17, 155.71, 167.85, 184.22, 162.71, 140, 154.67, 143.19, 138.59, 160.27, 155.76, 201.61, 261.71, 190.35, 210.02, 165.62, 170.43, 159.72, 140.78, 141.99, 143.6, 147.41, 152.18, 163.24, 147.01, 156.69, 173.08, 145.51, 147.89, 158.98, 185.3, 0]
HEADxychart-beta
title "HEAD CPU"
x-axis "Elapsed seconds" [1.538, 3.042, 4.544, 6.548, 8.05, 9.552, 11.055, 12.558, 14.064, 15.567, 17.569, 19.07, 20.576, 21.125, 22.126, 23.629, 25.13, 26.632, 28.634, 29.134, 30.136, 31.668, 33.171, 34.671, 36.173, 37.679, 39.18, 41.181, 42.687, 44.189, 45.692, 47.193, 48.698, 50.199, 52.201, 53.703, 55.207, 56.207]
y-axis "CPU percent" 0 --> 500
line [121.85, 137.34, 105.93, 105.72, 115.64, 103.88, 129.82, 121.86, 91.93, 115.71, 87.7, 85.98, 17.85, 0, 0, 31.95, 113.89, 113.83, 99.87, 102, 103.77, 90.51, 43.9, 107.97, 111.87, 37.97, 65.98, 9.99, 109.91, 127.92, 87.89, 13.99, 93.49, 117.87, 51.96, 95.91, 113.7, 218.06]
xychart-beta
title "HEAD memory: RSS then PSS"
x-axis "Elapsed seconds" [0.033, 1.538, 3.042, 4.544, 6.548, 8.05, 9.552, 11.055, 12.558, 14.064, 15.567, 17.569, 19.07, 20.576, 21.125, 22.126, 23.629, 25.13, 26.632, 28.634, 29.134, 30.136, 31.668, 33.171, 34.671, 36.173, 37.679, 39.18, 41.181, 42.687, 44.189, 45.692, 47.193, 48.698, 50.199, 52.201, 53.703, 55.207, 56.207, 56.593]
y-axis "Memory MiB" 0 --> 500
line [11.96, 108.16, 123.34, 147.4, 178.59, 175.79, 187.84, 159.5, 156.5, 167.26, 183.47, 146.21, 150.18, 138.3, 138.3, 137.21, 140.54, 175.67, 148.95, 225.77, 269.95, 190.63, 164.51, 156.1, 186.71, 165.38, 142.38, 152.29, 151.88, 186.61, 183.75, 183.14, 153.11, 177.29, 175.45, 153.17, 153.71, 165.23, 198.54, 0]
line [9.22, 104.91, 120.01, 144.2, 175.96, 172.48, 184.36, 156.17, 153.23, 163.85, 180.1, 142.74, 146.78, 134.84, 134.84, 133.75, 137.08, 172.3, 145.43, 222.41, 266.55, 187.33, 162.56, 152.75, 183.29, 161.99, 138.9, 148.85, 148.47, 183.4, 180.32, 179.73, 149.68, 173.89, 166.79, 149.68, 150.23, 161.77, 195.2, 0]
Deterministic fixture · required contractThe fixture exercises 15 routes: 8 are expected to emit rows and 7 intentionally exercise empty, loading, or timeout behavior.
Full HTML, JSON, CSV, logs, and page snapshots: workflow run and full The public-web A/B is informational. The exact HEAD fixture contract runs as a separate required CI check; timing and public-site content deltas remain non-blocking. |
|
由 #734 替代:基于 main@2793b2407,PR 作者和所有新增提交的 GitHub author/committer 已核验关联 lanyue-llk。原分支、提交和本 PR 的讨论保留;这里只关闭被替代的 PR,不删除分支。新的 CI 与逐 case 验收记录归属替代 PR,旧版本测试结果不冒认为新版本结果。 |
CI Regression ReportSource CI run · source state at render:
Release regression — ⚪ artifact unavailable or invalidArtifact unavailable or invalid. See the source CI run for infrastructure details. Frontend differential — ✅ 1,020/1,020 cases matched; 0 issues
Agent episodes · Moli vs Chromium — ✅ 8/8 Moli episodes passed; 0 failures
Runtime and CDP session contracts — ✅ 26 contract cases; 0 failures
CDP smoke — ✅ 48/48 groups passed; 535 scenariosWorkers: 4 · cumulative group time: 148.14 s · failed groups: 0
All artifact fields are parsed by the trusted default-branch renderer; missing or invalid inputs remain visible as unavailable. |
启动器关闭 stderr 后,浏览器记录脚本错误会因日志组件再次写入损坏管道而中止进程。本 PR 保留正常错误日志,关闭日志组件对自身写入失败的二次输出;同时修复 CI 产物校验和跨平台测试夹具,为后续功能 PR 提供稳定的测试前提。
修复机制
flowchart TD A[页面脚本错误] --> B[tracing 记录错误] B --> C{stderr 可写?} C -->|是| D[保留正常错误日志] C -->|否| E[禁用日志组件自身写入失败的二次输出] D --> F[浏览器继续完成请求] E --> F图示说明本 PR 的 stderr 故障处理路径。
对应验收
本 PR 不认领历史 1.1.9 的 34 个失败 case,验收对象是诊断管道、CI 归档及测试夹具的功能契约。
f13e9f42/7241328022e161c8,基于de1093d9c;rebase 前后功能补丁逐字节相同node --test .github/scripts/*.test.cjs,13/13 通过源码、门禁与构建参数证据、rebase 补丁一致性、release 二进制哈希与红绿结果、CI 脚本测试。本地门禁关闭调试符号以控制磁盘占用,未关闭断言或减少测试。
复现诊断管道专项:
cargo nextest run -E 'test(cli_uncaught_script_error_)'范围与依赖
从 #640 拆出,原 PR 与原分支保留。本 PR 直接基于 main,是其他六个功能分区的共同前置。布局夹具的调整只固定字体输入和验证真实基线关系;布局生产逻辑仍在独立布局 PR 中。
完整对应关系:拆分 PR 索引、逐 case 历史失败及归属。