MendyBerger added the bug label to Issue #7951.
MendyBerger opened issue #7951:
This issue is a weird one. There seems to be some very specific set of inputs that trigger a utf8 parsing error, and modifying the inputs even just a little can stop it from happening. This was really hard to get to reproduce reliably.
I ran into this issue twice, and this is my smallest reproduction that triggers it. Sorry if it's too convoluted, don't know how to make it smaller, and already spent quite a few hours on it.
Test Case
https://github.com/MendyBerger/wasmtime-utf8-parsing-error/blob/main/wasm/out.wasm
Steps to Reproduce
Clone the repo at https://github.com/MendyBerger/wasmtime-utf8-parsing-error.
Compile the wasm module.
Run with the runtime.Here's a list of commnads
# clone the repo git clone https://github.com/MendyBerger/wasmtime-utf8-parsing-error cd wasmtime-utf8-parsing-error # compile the wasm module cd wasm cargo build --release --target wasm32-unknown-unknown wasm-tools component new ./target/wasm32-unknown-unknown/release/wasm.wasm -o out.wasm # run the runtime cd ../runtime cargo run
Expected Results
Expect it to just run.
Actual Results
Fails with the following error:
Error: error while executing at wasm backtrace: 0: 0x1596ef - wit-component:shim!indirect-$root-my-func 1: 0x4ab - <unknown>!run note: using the `WASMTIME_BACKTRACE_DETAILS=1` environment variable may show more debugging information Caused by: invalid utf-8 sequence of 1 bytes from index 0
Versions and Environment
Wasmtime version or commit:
17.0.1
Operating system: Ubuntu
Architecture: x86
Extra Info
Some of the weirdness:
MendyBerger edited issue #7951:
This issue is a weird one. There seems to be some very specific set of inputs that trigger a utf8 parsing error, and modifying the inputs even just a little can stop it from happening. This was really hard to get to reproduce reliably.
I ran into this issue twice, and this is my smallest reproduction that triggers it. Sorry if it's too convoluted, don't know how to make it smaller, and already spent quite a few hours on it.
Test Case
https://github.com/MendyBerger/wasmtime-utf8-parsing-error/blob/main/wasm/out.wasm
Steps to Reproduce
Clone the repo at https://github.com/MendyBerger/wasmtime-utf8-parsing-error.
Compile the wasm module.
Run with the runtime.Here's a list of commands
# clone the repo git clone https://github.com/MendyBerger/wasmtime-utf8-parsing-error cd wasmtime-utf8-parsing-error # compile the wasm module cd wasm cargo build --release --target wasm32-unknown-unknown wasm-tools component new ./target/wasm32-unknown-unknown/release/wasm.wasm -o out.wasm # run the runtime cd ../runtime cargo run
Expected Results
Expect it to just run.
Actual Results
Fails with the following error:
Error: error while executing at wasm backtrace: 0: 0x1596ef - wit-component:shim!indirect-$root-my-func 1: 0x4ab - <unknown>!run note: using the `WASMTIME_BACKTRACE_DETAILS=1` environment variable may show more debugging information Caused by: invalid utf-8 sequence of 1 bytes from index 0
Versions and Environment
Wasmtime version or commit:
17.0.1
Operating system: Ubuntu
Architecture: x86
Extra Info
Some of the weirdness:
MendyBerger edited issue #7951:
This issue is a weird one. There seems to be some very specific set of inputs that trigger a utf8 parsing error, and modifying the inputs even just a little can stop it from happening. This was really hard to get to reproduce reliably.
I ran into this issue twice, and this is my smallest reproduction that triggers it. Sorry if it's too convoluted, don't know how to make it smaller, and already spent quite a few hours on it.
Test Case
Wasm input:
https://github.com/MendyBerger/wasmtime-utf8-parsing-error/blob/main/wasm/src/lib.rsActual wasm:
https://github.com/MendyBerger/wasmtime-utf8-parsing-error/blob/main/wasm/out.wasmRuntime code:
https://github.com/MendyBerger/wasmtime-utf8-parsing-error/blob/main/runtime/src/main.rsSteps to Reproduce
Clone the repo at https://github.com/MendyBerger/wasmtime-utf8-parsing-error.
Compile the wasm module.
Run with the runtime.Here's a list of commands
# clone the repo git clone https://github.com/MendyBerger/wasmtime-utf8-parsing-error cd wasmtime-utf8-parsing-error # compile the wasm module cd wasm cargo build --release --target wasm32-unknown-unknown wasm-tools component new ./target/wasm32-unknown-unknown/release/wasm.wasm -o out.wasm # run the runtime cd ../runtime cargo run
Expected Results
Expect it to just run.
Actual Results
Fails with the following error:
Error: error while executing at wasm backtrace: 0: 0x1596ef - wit-component:shim!indirect-$root-my-func 1: 0x4ab - <unknown>!run note: using the `WASMTIME_BACKTRACE_DETAILS=1` environment variable may show more debugging information Caused by: invalid utf-8 sequence of 1 bytes from index 0
Versions and Environment
Wasmtime version or commit:
17.0.1
Operating system: Ubuntu
Architecture: x86
Extra Info
Some of the weirdness:
alexcrichton commented on issue #7951:
Thanks for the report, and very much appreciate the work put in to minimizing this! Looking at the code I haven't reproduce this exactly just yet but I suspect you're running into https://github.com/bytecodealliance/wit-bindgen/issues/817 where this is a bug in the guest generated code where there's UB in the rust/wasm layer, which I think could explain why you're seeing such surprising behavior here.
I'll try to see if I can fix that issue soon and see if it fixes this as well
MendyBerger commented on issue #7951:
Thanks!! I'll keep an eye on that one.
alexcrichton commented on issue #7951:
Ok I've confirmed that your issue should be fixed by https://github.com/bytecodealliance/wit-bindgen/pull/846, so I think it was indeed that wit-bindgen issue.
MendyBerger commented on issue #7951:
@alexcrichton thanks so much!!! I super appreciate how quickly you did this!
alexcrichton closed issue #7951:
This issue is a weird one. There seems to be some very specific set of inputs that trigger a utf8 parsing error, and modifying the inputs even just a little can stop it from happening. This was really hard to get to reproduce reliably.
I ran into this issue twice, and this is my smallest reproduction that triggers it. Sorry if it's too convoluted, don't know how to make it smaller, and already spent quite a few hours on it.
Test Case
Wasm input:
https://github.com/MendyBerger/wasmtime-utf8-parsing-error/blob/main/wasm/src/lib.rsActual wasm:
https://github.com/MendyBerger/wasmtime-utf8-parsing-error/blob/main/wasm/out.wasmRuntime code:
https://github.com/MendyBerger/wasmtime-utf8-parsing-error/blob/main/runtime/src/main.rsSteps to Reproduce
Clone the repo at https://github.com/MendyBerger/wasmtime-utf8-parsing-error.
Compile the wasm module.
Run with the runtime.Here's a list of commands
# clone the repo git clone https://github.com/MendyBerger/wasmtime-utf8-parsing-error cd wasmtime-utf8-parsing-error # compile the wasm module cd wasm cargo build --release --target wasm32-unknown-unknown wasm-tools component new ./target/wasm32-unknown-unknown/release/wasm.wasm -o out.wasm # run the runtime cd ../runtime cargo run
Expected Results
Expect it to just run.
Actual Results
Fails with the following error:
Error: error while executing at wasm backtrace: 0: 0x1596ef - wit-component:shim!indirect-$root-my-func 1: 0x4ab - <unknown>!run note: using the `WASMTIME_BACKTRACE_DETAILS=1` environment variable may show more debugging information Caused by: invalid utf-8 sequence of 1 bytes from index 0
Versions and Environment
Wasmtime version or commit:
17.0.1
Operating system: Ubuntu
Architecture: x86
Extra Info
Some of the weirdness:
Last updated: Dec 23 2024 at 12:05 UTC