Skip to content

Conversation

@mschwarzl
Copy link
Contributor

  • Implemented a REPRL interface that can be used for fuzzing workerd with Fuzzilli
  • Stdin.reprl opens up the shared memory and required pipes, waits for the file size and parses the file from Fuzzilli
  • Added a new fuzzilli command to main
  • Added a test for the REPRL interface

@mschwarzl mschwarzl requested review from a team as code owners August 27, 2025 14:55
@github-actions
Copy link

github-actions bot commented Aug 27, 2025

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@github-actions
Copy link

github-actions bot commented Aug 27, 2025

The generated output of @cloudflare/workers-types matches the snapshot in types/generated-snapshot 🎉

@mschwarzl
Copy link
Contributor Author

I have read the CLA Document and I hereby sign the CLA

@mschwarzl
Copy link
Contributor Author

recheck

github-actions bot added a commit that referenced this pull request Aug 27, 2025
@mschwarzl mschwarzl force-pushed the reprl-2 branch 2 times, most recently from b4d4fff to 53e719f Compare August 27, 2025 15:31
@mschwarzl
Copy link
Contributor Author

recheck

@mschwarzl mschwarzl force-pushed the reprl-2 branch 16 times, most recently from 6e435f0 to 55b86b3 Compare August 29, 2025 06:53
@mschwarzl mschwarzl force-pushed the reprl-2 branch 3 times, most recently from b7bc1cf to 01c1059 Compare October 2, 2025 15:27
@mschwarzl mschwarzl requested a review from mikea October 21, 2025 12:15
@mschwarzl mschwarzl force-pushed the reprl-2 branch 6 times, most recently from d436ec9 to c773dd9 Compare October 28, 2025 09:27
@codspeed-hq
Copy link

codspeed-hq bot commented Oct 28, 2025

CodSpeed Performance Report

Merging #4917 will degrade performances by 9.25%

Comparing reprl-2 (2c32de2) with main (2376e81)

Summary

❌ 1 regression
✅ 33 untouched
⏩ 9 skipped1

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Benchmarks breakdown

Benchmark BASE HEAD Change
Encode_ASCII_256[0/0/256] 4.4 ms 4.8 ms -9.25%

Footnotes

  1. 9 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@mschwarzl mschwarzl force-pushed the reprl-2 branch 3 times, most recently from 543fb2a to 39fc71c Compare November 3, 2025 15:41
Copy link
Collaborator

@jasnell jasnell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once CI is green, LGTM

@mschwarzl mschwarzl force-pushed the reprl-2 branch 2 times, most recently from 20ac51e to 2192f02 Compare November 4, 2025 08:45
@mschwarzl mschwarzl dismissed mikea’s stale review November 4, 2025 09:27

Changes were applied

This commit adds comprehensive support for fuzzing workerd using Fuzzilli's
REPRL (Read-Eval-Print-Reset-Loop) protocol.

Key changes:
- Implement REPRL protocol handler in workerd server with --stdin-reprl flag
- Add fuzzilli() JavaScript API for crash testing and coverage tracking
- Integrate libreprl C library for REPRL client communication
- Add KJ-based test framework integration (test-reprl.c++)
- Create example Fuzzilli configurations and mock services
- Add immediate-crash.h utility for controlled crash testing
- Fix V8 ASAN macro redefinition warnings by adding V8_USE_ADDRESS_SANITIZER
- Update .bazelrc to use clang-19 directly instead of ccache wrapper

The implementation allows Fuzzilli to:
- Execute JavaScript code in isolated REPRL sessions
- Collect sanitizer coverage feedback
- Detect crashes and memory errors
- Reset worker state between executions

Example usage:
  bazel test --config=fuzzilli //src/workerd/tests:test-reprl
  ./workerd test fuzzilli/config.capnp --experimental --stdin-reprl
@mschwarzl mschwarzl requested a review from a team November 4, 2025 16:43
@mschwarzl mschwarzl requested a review from a team as a code owner November 4, 2025 16:43
@jasnell jasnell merged commit bcc0707 into main Nov 4, 2025
21 of 22 checks passed
@jasnell jasnell deleted the reprl-2 branch November 4, 2025 23:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants