Repository navigation
fix(fetch): stabilize default page completion - #1436
lanyue-llk wants to merge 2 commits into
Conversation
Spider Bench A/B✅ All benchmark browser service runs completed; results are informational. Public HEAD: 184 / 240 rows; 38 / 48 sites produced rows; 10 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.542, 3.045, 4.547, 6.05, 7.552, 9.053, 10.555, 12.056, 13.559, 14.561, 16.063, 17.565, 19.098, 20.711, 22.227, 23.729, 25.236, 26.739, 28.239, 29.741, 31.243, 31.743, 32.745, 34.246, 35.748, 37.25, 38.751, 40.253, 41.254, 42.755, 43.256, 44.258, 45.761, 47.262, 48.763, 50.264, 51.767, 52.768]
y-axis "CPU percent" 0 --> 500
line [70.02, 123.75, 105.93, 183.6, 181.61, 105.84, 151.82, 175.85, 159.67, 33.92, 77.92, 73.9, 146.53, 42.54, 103.89, 111.91, 43.94, 79.83, 46.01, 99.81, 99.92, 112, 107.77, 145.93, 153.79, 115.97, 102.02, 119.82, 15.98, 4, 0, 107.81, 85.88, 2, 129.82, 65.92, 113.83, 213.69]
xychart-beta
title "Base memory: RSS then PSS"
x-axis "Elapsed seconds" [0.042, 1.542, 3.045, 4.547, 6.05, 7.552, 9.053, 10.555, 12.056, 13.559, 14.561, 16.063, 17.565, 19.098, 20.711, 22.227, 23.729, 25.236, 26.739, 28.239, 29.741, 31.243, 31.743, 32.745, 34.246, 35.748, 37.25, 38.751, 40.253, 41.254, 42.755, 43.256, 44.258, 45.761, 47.262, 48.763, 50.264, 51.767, 52.768, 53.197]
y-axis "Memory MiB" 0 --> 500
line [12.54, 93.67, 143.89, 133.28, 156.48, 195.42, 215.26, 171.47, 181.98, 197.22, 170.41, 164.72, 186.16, 168.39, 156.25, 153.89, 193.43, 145.21, 156.94, 143.88, 170.77, 250.13, 292.45, 204.01, 185.88, 162.82, 185.75, 151.86, 161.68, 154.79, 154.48, 154.49, 189.2, 169.73, 151.21, 165.22, 160.31, 178.27, 204.89, 0]
line [9.29, 90.04, 140.3, 129.65, 152.79, 191.73, 211.61, 168.52, 178.3, 193.75, 166.79, 161.08, 182.38, 164.71, 152.61, 150.24, 189.76, 141.52, 153.17, 140.18, 167.1, 246.67, 288.91, 200.45, 181.08, 158.3, 182.26, 148.31, 158.16, 151.25, 150.93, 150.95, 184.88, 166.19, 147.67, 161.67, 156.83, 174.73, 201.49, 0]
HEADxychart-beta
title "HEAD CPU"
x-axis "Elapsed seconds" [1.538, 3.04, 4.042, 4.542, 5.543, 6.044, 7.546, 9.048, 10.55, 12.052, 13.553, 15.056, 16.556, 18.059, 19.06, 19.561, 21.062, 22.564, 24.066, 25.567, 27.568, 29.071, 30.572, 32.074, 33.576, 35.077, 36.578, 38.08, 39.582, 41.083, 42.585, 44.086, 45.589, 47.089, 48.593, 50.096, 51.598, 53.099]
y-axis "CPU percent" 0 --> 500
line [121.64, 129.96, 93.84, 125.94, 153.89, 133.64, 161.6, 219.75, 137.92, 91.9, 125.84, 99.9, 81.93, 93.79, 0, 5.98, 2, 3.99, 19.99, 99.98, 119.89, 101.84, 141.79, 107.74, 103.79, 107.83, 159.87, 101.91, 101.82, 13.99, 43.93, 83.87, 49.91, 14, 75.9, 105.45, 51.93, 113.75]
xychart-beta
title "HEAD memory: RSS then PSS"
x-axis "Elapsed seconds" [0.037, 1.538, 3.04, 4.042, 4.542, 5.543, 6.044, 7.546, 9.048, 10.55, 12.052, 13.553, 15.056, 16.556, 18.059, 19.06, 19.561, 21.062, 22.564, 24.066, 25.567, 27.568, 29.071, 30.572, 32.074, 33.576, 35.077, 36.578, 38.08, 39.582, 41.083, 42.585, 44.086, 45.589, 47.089, 48.593, 50.096, 51.598, 53.099, 54.25]
y-axis "Memory MiB" 0 --> 500
line [12.76, 113.48, 137.04, 134.94, 169.09, 175.97, 172.3, 178.41, 157.18, 191.58, 184.23, 176.36, 175.05, 157.96, 171.9, 145.07, 143.52, 146.74, 143.36, 147.09, 172.36, 162.39, 286.01, 208.25, 245.46, 163.48, 184.78, 175.26, 159.51, 158.49, 156.56, 158.84, 157.43, 163.71, 163.04, 156.53, 171.09, 155.84, 177.48, 0]
line [9.77, 110.18, 133.22, 131.2, 166.02, 172.19, 169.04, 174.9, 153.83, 188.76, 180.86, 173.01, 171.67, 154.61, 168.54, 141.72, 140.16, 143.37, 139.71, 143.94, 168.71, 158.76, 282.42, 204.63, 241.95, 159.9, 181.63, 171.66, 155.97, 154.95, 153.02, 155.35, 153.82, 160.03, 159.36, 152.89, 167.51, 151.99, 174.08, 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. |
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. |
CI Regression ReportSource CI run · source state at render:
Release regression — ✅ HEAD/base failures 0/0; raw binary +0.002825%Package and image size
Startup latency and PSS
Concurrency matrix
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 — ✅ 52/52 groups passed; 621 scenariosWorkers: 4 · cumulative group time: 161.14 s · failed groups: 0
WebMainBench · 545 pages — ✅ 545/545 completed; 0 unexpected failures
Frozen HTML · Linux · Diagnostics: All artifact fields are parsed by the trusted default-branch renderer; missing or invalid inputs remain visible as unavailable. |
|
Use |
|
Closing after review. Changing default completion to wait for DOM stability adds systematic latency and conflicts with the explicit mode. This approach is intentionally excluded from #1501. |
|
Correction to the close note: changing default completion to wait for DOM stability adds systematic latency and conflicts with the explicit |
The default
donemode could return immediately after the load event, before post-load scripts had rendered their final document content. A page that appends an external script from a load handler therefore produced incomplete Markdown, while explicitly selecting DOM stability produced the expected table.This change keeps
loadexact and makes the defaultdonemode use the existing bounded DOM-stability phase after load, within the same absolute deadline. It preserves the current raw-document policy and adds browser-level coverage for both inline post-load rendering and an external script inserted by a load handler.Validation: