fix(ci): raise fuzz RSS budget#3187
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
📜 Recent review details⏰ Context from checks skipped due to timeout. (32)
|
| Layer / File(s) | Summary |
|---|---|
Configure and verify fuzz memory limits .github/workflows/fuzz.yml, tests/tooling/fuzz-setup.test.ts |
The fuzz command adds RSS and malloc limits, while the tooling test asserts both resource flags. |
MoonBit installer integrity
| Layer / File(s) | Summary |
|---|---|
Refresh installer checksums .github/actions/setup-moonbit/install-moonbit.mjs |
Expected SHA-256 hashes are updated for the Unix and Windows MoonBit installer artifacts. |
MoonBit map initialization
| Layer / File(s) | Summary |
|---|---|
Make empty map construction explicit tools/moon/cmd/*/*.mbt |
Environment, catalog, workspace, and rename accumulators use explicit empty Map construction without changing subsequent logic. |
Estimated code review effort: 2 (Simple) | ~10 minutes
Possibly related PRs
- ubugeeei-prod/vize#2655: Updates related MoonBit artifact integrity hashes.
- ubugeeei-prod/vize#2941: Modifies the fuzz invocation and corresponding test assertions.
🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
| Check name | Status | Explanation | Resolution |
|---|---|---|---|
| Out of Scope Changes check | The PR includes unrelated MoonBit map-literal changes and installer checksum updates beyond the fuzz RSS fix. | Move the MoonBit type-cleanup and installer checksum updates into separate PRs, leaving only the fuzz workflow and test change here. |
✅ Passed checks (4 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | The title clearly describes the main change: increasing the fuzz RSS budget in CI. |
| Linked Issues check | ✅ Passed | The workflow update and regression test match the css_parse OOM/reproducer fix described in #3184. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
✨ Finishing Touches
🧪 Generate unit tests (beta)
- Create PR with unit tests
- Commit unit tests in branch
codex/fix-css-parse-3184
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
vize
@vizejs/fresco
@vizejs/musea-mcp-server
oxlint-plugin-vize
@vizejs/rspack-plugin
@vizejs/unplugin
@vizejs/vite-plugin
@vizejs/vite-plugin-musea
@vizejs/musea-nuxt
@vizejs/nuxt
@vizeui/core
commit: |
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Detailed Test ReportCommit: Area Summary
Test InventoryTotal tracked cases: 9416 across 1454 files.
Files
Comment truncated at 64000 characters. Open the workflow run for the full job log. |
PR BenchmarkBase:
Raw run timesCompile SFC
Lint
Format
Type check (1T)
Type check (max)
|
Detailed Test ReportCommit: Area Summary
Test InventoryTotal tracked cases: 9416 across 1454 files.
Files
Comment truncated at 64000 characters. Open the workflow run for the full job log. |
Tool BenchmarkMeasured: 2026-07-21T07:33:22.590Z
Fairness notes:
Commands: gh workflow run tool-benchmark.yml --ref <branch> -f file_count=3000 -f check_file_count=500 -f vite_file_count=1000 -f nuxt_file_count=250 -f large_blocks=300 -f runs=3 -f warmups=1 -f commit_results=true
node bench/generate.mjs 3000
node bench/compare-tools.mjs --input bench/__in__ --vize-bin target/release/vize --runs 3 --warmups 1 --check-file-count 500 --vite-file-count 1000 --nuxt-file-count 250 --large-blocks 300 --runner-label "blacksmith-32vcpu-ubuntu-2404" --out tool-benchmark-summary.md --json tool-benchmark-results.json --doc performance-blacksmith.mdVariant details and raw run timesSFC compile
Large SFC compile
Large SFC type check
Lint
Format
Type check
Vite build (end-to-end)
Nuxt SPA build (end-to-end)
|
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
PR BenchmarkBase:
Raw run timesCompile SFC
Lint
Format
Type check (1T)
Type check (max)
|
Detailed Test ReportCommit: Area Summary
Test InventoryTotal tracked cases: 9416 across 1454 files.
Files
Comment truncated at 64000 characters. Open the workflow run for the full job log. |
Tool BenchmarkMeasured: 2026-07-21T07:51:20.775Z
Fairness notes:
Commands: gh workflow run tool-benchmark.yml --ref <branch> -f file_count=3000 -f check_file_count=500 -f vite_file_count=1000 -f nuxt_file_count=250 -f large_blocks=300 -f runs=3 -f warmups=1 -f commit_results=true
node bench/generate.mjs 3000
node bench/compare-tools.mjs --input bench/__in__ --vize-bin target/release/vize --runs 3 --warmups 1 --check-file-count 500 --vite-file-count 1000 --nuxt-file-count 250 --large-blocks 300 --runner-label "blacksmith-32vcpu-ubuntu-2404" --out tool-benchmark-summary.md --json tool-benchmark-results.json --doc performance-blacksmith.mdVariant details and raw run timesSFC compile
Large SFC compile
Large SFC type check
Lint
Format
Type check
Vite build (end-to-end)
Nuxt SPA build (end-to-end)
|
Summary
Root cause
The scheduled
css_parserun loaded 75,457 seeds and completed roughly 5.7 million executions before sanitizer allocator high-water memory reached 2,066 MiB. libFuzzer then emitted an emptyoom-da39a3...artifact even though replaying that artifact completes successfully in 0 ms. This is cumulative instrumented-process RSS, not an input-specific parser failure.Validation
node --test tests/tooling/fuzz-setup.test.tscargo +nightly fuzz run --fuzz-dir tests/fuzz css_parse <empty-artifact> -- -runs=1 -rss_limit_mb=4096 -malloc_limit_mb=2048git diff --checkCloses #3184
Need help on this PR? Tag
/codesmithwith what you need. Autofix is enabled.Summary by CodeRabbit