-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[37.0.0] More WASIp3 backports #11654
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[37.0.0] More WASIp3 backports #11654
Conversation
…ance#11625) * support non-async `{stream,future}.cancel-{read,write}` During my earlier stream API refactoring, I had forgotten to support or test synchronous cancellation; this commit does both. In the process, I realized the future API ought to be updated to support blocking cancellation just like the stream API, so I made that change as well. This also adds `{Source,Destination}::reborrow` functions, allowing instances of those types to be reborrowed, such that they may be passed as parameters but also used again. Note that I had to move some functions from `impl ConcurrentState` to `impl Instance` in order to access the store and suspend the current fiber when synchronously cancelling. Signed-off-by: Joel Dice <joel.dice@fermyon.com> * reduce code duplication Signed-off-by: Joel Dice <joel.dice@fermyon.com> --------- Signed-off-by: Joel Dice <joel.dice@fermyon.com>
…ytecodealliance#11645) * support and test synchronous `{stream,future}.cancel-{read,write}` Previously, we only supported async calls to those intrinsics; now we support blocking, synchronous calls as well. Signed-off-by: Joel Dice <joel.dice@fermyon.com> * update future-read.wast test Signed-off-by: Joel Dice <joel.dice@fermyon.com> --------- Signed-off-by: Joel Dice <joel.dice@fermyon.com>
* refactor(p3-http): use trappable errors Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * feat(p3-http): implement `content-length` handling Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * refactor(p3-http): remove a few resource utilities Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * remove unused test import Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * fix(p3-http): close stream handles on drop Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * test(p3-http): stream responses back This is something we've been doing in wasip3, but I forgot to port this over Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * doc(p3-http): add missing docs, internalize more, simplify Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * refactor(p3-http): extract `Body::consume` Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * refactor(p3-http): clean-up `content-length` error reporting Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * refactor(p3-http): drop elided lifetime Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * fix(p3-http): avoid guest body deadlock hazard Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * refactor(p3-http): add more docs, clean-up Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * doc(p3-http): add more docs Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * fix(p3-http): rework result future handling Most importantly this avoids a race condition between `content-length` error observed by `GuestBody` and hyper I/O driver Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * add new imports after rebase Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * clean-up `poll_consume` Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * assert content-length `handle` results Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * relax `content_length` test `handle` assert Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> --------- Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
* p3: refactor future producers/consumers Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * p3-http: tie lifetime of the spawned task to the bodies Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> * p3-http: improve docs Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net> --------- Signed-off-by: Roman Volosatovs <rvolosatovs@riseup.net>
|
cc @rvolosatovs this failure looks like a spurious flake in wasi-http tests (I can retry it but I don't want to lose it either): |
The fix is not entirely obvious, in fact I'm quite confused how the |
Filed bytecodealliance#11656 to track the eventual resolution.
…iance#11655) Previously, we were unconditionally deleting the callee subtask once it returned a value to a sync-lowered call, but that's only appropriate if the subtask has exited. Otherwise, it needs to keep running and only be deleted once it actually exits. Thanks to Luke for the `sync-streams.wast` test that uncovered this, which I've copied from the `component-model` repo. This also makes a couple of debug logging tweaks that proved useful while investigating the above issue. Signed-off-by: Joel Dice <joel.dice@fermyon.com>
5b4ef94
into
bytecodealliance:release-37.0.0
No description provided.