sockets: Add error code for EPIPE (and ECONNABORTED on Windows)#887
Open
badeend wants to merge 1 commit intoWebAssembly:mainfrom
Open
sockets: Add error code for EPIPE (and ECONNABORTED on Windows)#887badeend wants to merge 1 commit intoWebAssembly:mainfrom
badeend wants to merge 1 commit intoWebAssembly:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WASI sockets currently has no error code corresponding to
EPIPE. When writing to a closed/broken socket:EPIPEECONNABORTEDAfter searching around, this Windows-specific discrepancy is well-known:
EPIPE.ECONNRESET.WASI doesn't have a good solution for it now:
EPIPE, previously acknowledged writes may have been lost and and the guest should be informed about that. So swallowing the error is not right.ECONNRESETisn't right either, beause that implies that the peer actively reset the connection.ECONNABORTEDisn't optimal either, because that error code is usually only returned byacceptand sometimesconnecton Unix-like systems.I think this warrants a new error code. I've called it
connection-broken. I expect wasi-libc to map this toEPIPE.Wasmtime currently maps EPIPE to
ok(()). With the new error code in place, this test can be updated to consistently expect an error cross platform.