bytecodealliance / bytecodealliance/wasmtime
wasmtime-wasi: Unexpected tcp stream break (Returning 0 for `std::io::ErrorKind::WouldBlock`)
- Dominant language
- Rust
- Stars
- 18.6k
- Forks
- 1.8k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 126
Description
https://github.com/bytecodealliance/wasmtime/blob/67674881db5fbdbba8594feb52655aaa351a5f77/crates/wasi/src/tcp.rs#L719-L723
Returning `0` for `std::io::ErrorKind::WouldBlock` causes downstream to interpret it as a closed stream, see:
https://github.com/yoshuawuyts/wstd/issues/25#issuecomment-2493294087.
https://github.com/yoshuawuyts/wstd/blob/5ce367add5e7bcb569b6487453cb9ba94468dc99/src/io/copy.rs#L12
This is also found in:
https://github.com/bytecodealliance/wasmtime/blob/67674881db5fbdbba8594feb52655aaa351a5f77/crates/test-programs/src/bin/preview2_tcp_streams.rs#L17-L22
~~Given that the `wit` files already include many `would-block` errors, would it make sense to extend `stream-error` to include a `would-block`?~~
Contributor guide
Assessment
This issue has not been assessed yet.