"Downgrade" threads support to tier 2, disable fuzzing#12036
"Downgrade" threads support to tier 2, disable fuzzing#12036alexcrichton merged 8 commits intobytecodealliance:mainfrom
Conversation
cfallin
left a comment
There was a problem hiding this comment.
No objections from me at least; not sure if we want to discuss in the Wasmtime meeting or if anyone else has any input on the decision...
|
Good point yeah, let's discuss in a meeting |
Subscribe to Label Actioncc @fitzgen DetailsThis issue or pull request has been labeled: "fuzzing", "wasmtime:docs"Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
9aea22e to
6078a06
Compare
|
Ok updated this from today's discussion in the Wasmtime meeting namely:
Notably there's not actually any means of exercising the threading/problematic parts of the API, namely |
Label Messager: wasmtime:configIt looks like you are changing Wasmtime's configuration options. Make sure to
DetailsTo modify this label's message, edit the To add new label messages or remove existing label messages, edit the |
This commit is borne out of a fuzz bug that was opened recently. The fuzz bug specifically has to do with fallout from bytecodealliance#12022, specifically `SharedMemory` being used to allocated instead of `Memory`. In this situation the resource limiter is no longer consulted meaning that shared memories bypass this and aren't caught by OOM checks. This is currently by design because `SharedMemory` instances don't know which resource limiter to hook into per-store. More generally though the implementation of wasm threads, while workable in Wasmtime, has a number of known relatively large deficiencies. These were not resolved prior to ungating the wasm proposal (that's on me) but nevertheless the quality of implementation is not quite up to "tier 1 par" with the rest of what Wasmtime offers. Given this the threads proposal is now downgraded to tier 2. To help minimize the impact of this the wasm proposal is left enabled-by-default, but creation of a `SharedMemory` in the Rust API requires opting-in via a new `Config::shared_memory` method. This commit shuffles around some documentation of wasm proposals to split it into tier 1/2/3 instead of on/off-by-default and then adds a column for whether the proposal is on-by-default.
Fix an issue where defined shared memories weren't gated
prtest:full
07f99e4 to
e27e28a
Compare
0a55f80
This commit is borne out of a fuzz bug that was opened recently. The fuzz bug specifically has to do with fallout from #12022, specifically
SharedMemorybeing used to allocated instead ofMemory. In this situation the resource limiter is no longer consulted meaning that shared memories bypass this and aren't caught by OOM checks. This is currently by design becauseSharedMemoryinstances don't know which resource limiter to hook into per-store.More generally though the implementation of wasm threads, while workable in Wasmtime, has a number of known relatively large deficiencies. These were not resolved prior to ungating the wasm proposal (that's on me) but nevertheless the quality of implementation is not quite up to "tier 1 par" with the rest of what Wasmtime offers. Given that I'm proposing that threads is downgraded to tier 2 for now which means, primarily, that we won't issue CVEs for issues with it. The proposal is still on-by-default and usable-by-default, but my hope is to reflect the current level of quality in Wasmtime with this adjustment.
This commit shuffles around some documentation of wasm proposals to split it into tier 1/2/3 instead of on/off-by-default and then adds a column for whether the proposal is on-by-default.