Stream: git-wasmtime

Topic: wasmtime / PR #12119 Add a new fuzzer focused on componen...


view this post on Zulip Wasmtime GitHub notifications bot (Dec 03 2025 at 20:49):

alexcrichton requested dicej for a review on PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 03 2025 at 20:49):

alexcrichton opened PR #12119 from alexcrichton:more-async-fuzz to bytecodealliance:main:

This commit adds a new fuzzer mode to the misc fuzzer of Wasmtime which is focused on async events and interleavings of components using the component-model-async proposal. This fuzzer works by having a precompiled guest program which serves as the component to run. This precompiled component has a custom fuzz.wit which is used to interface with the fuzzer itself. The fuzzer is then a fuzz-generated sequence of commands to send to the component which verifies that everything executes correctly, has no panics, etc.

This fuzzer intends to stress async communication and task infrastructure with component-model-async. Notably this does not stress lifting/lowering or arbitrary type signatures. This does, however, permute all of the following:

This is all throwing into a large "soup" and then asserted to work correctly. There's a few gotchas here and there for how this fuzzer is designed, such as some events requiring "yield N times to await this event happening". This is required because Wasmtime is allowed to non-deterministically select between a number of "ready events" and what to dispatch.

This is not intended to be a one-size-fits-all fuzzer for component-model-async. The recent enhancements to the component_api fuzzer are intended to complement this fuzzer in terms of what's stressed where internally.

<!--
Please make sure you include the following information:

Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.html

Please ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->

view this post on Zulip Wasmtime GitHub notifications bot (Dec 03 2025 at 20:50):

alexcrichton commented on PR #12119:

Currently leaving this in draft form while https://github.com/bytecodealliance/wit-bindgen/pull/1446 is pending.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 03 2025 at 20:51):

alexcrichton commented on PR #12119:

I'll also note that I understand this is a pretty meat and pretty dense fuzzer, so I'm happy to walk through it if @dicej you or anyone else is interested. I'm also happy to write up more docs anywhere as necessary. Current docs are primarily located at crates/test-programs/src/bin/fuzz_async.rs

view this post on Zulip Wasmtime GitHub notifications bot (Dec 03 2025 at 23:12):

alexcrichton updated PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 03 2025 at 23:25):

alexcrichton updated PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 03 2025 at 23:45):

github-actions[bot] commented on PR #12119:

Subscribe to Label Action

cc @fitzgen

<details>
This issue or pull request has been labeled: "fuzzing", "wasm-proposal:component-model-async", "wasmtime:api"

Thus the following users have been cc'd because of the following labels:

To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.

Learn more.
</details>

view this post on Zulip Wasmtime GitHub notifications bot (Dec 04 2025 at 15:35):

alexcrichton updated PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 04 2025 at 15:35):

alexcrichton has marked PR #12119 as ready for review.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 04 2025 at 15:35):

alexcrichton requested wasmtime-fuzz-reviewers for a review on PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 04 2025 at 15:35):

alexcrichton requested fitzgen for a review on PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 04 2025 at 15:35):

alexcrichton requested wasmtime-core-reviewers for a review on PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 04 2025 at 15:35):

alexcrichton requested wasmtime-default-reviewers for a review on PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 16:32):

dicej submitted PR review:

Awesome work; thanks for doing this!

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 16:32):

dicej created PR review comment:

//!   hasn't quite happened yet but it's queued up to happen. To handle these

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 16:32):

dicej created PR review comment:

A comment here explaining why the command list is being reversed would be helpful.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 16:32):

dicej created PR review comment:

    /// All known handles of this type, where they're located, etc.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 16:32):

dicej created PR review comment:

                // Writers can't actually be dropped prior to writing so "fake" a write by

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 16:32):

dicej created PR review comment:

//! The purpose of this fuzzer is to stress the management of async stacks, the

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 16:32):

dicej created PR review comment:

Let's remember to revisit this once e.g. intra-component stream<u8> reads/writes are allowed.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 16:32):

dicej created PR review comment:

                        // Two zero-length operations rendezvousing will leave

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 18:26):

alexcrichton updated PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 18:27):

alexcrichton created PR review comment:

Agreed yeah, there's a lot of parallels in restrictions/limitations of the component model which are baked into this generator and as we relax things we're going to want to make sure to relax the generator here and/or adjust it.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 18:27):

alexcrichton submitted PR review.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 18:28):

alexcrichton updated PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 18:28):

alexcrichton has enabled auto merge for PR #12119.

view this post on Zulip Wasmtime GitHub notifications bot (Dec 09 2025 at 20:11):

alexcrichton merged PR #12119.


Last updated: Jan 09 2026 at 13:15 UTC