primoly requested pchickey for a review on PR #10256.
primoly requested wasmtime-core-reviewers for a review on PR #10256.
primoly opened PR #10256 from primoly:ret-b4-set to bytecodealliance:main:
wasmtime servecurrently presumes that a failure to callresponse-outparam::setinsidehandlemeans the component trapped. But it can also happen by returning before invokingset. This PR accommodates for that.
alexcrichton commented on PR #10256:
Thanks! Could you add a test for this as well?
primoly updated PR #10256.
primoly commented on PR #10256:
I’ve added tests, but they are useless, as they pass even without the changes of this PR.
cli_serve_return_before_setis supposed to fail on the old branch. For some reason, when I execute my build ofwasmtimeit recovers from the panic, but when I use the downloaded prebuilt Wasmtime the program closes.Here a component that returns before calling set. Invoke with
wasmtime serve proxy.watand then connect to it, for example withcurl http://localhost:8080.proxy.wat
(component (type (;0;) (instance (export (;0;) "incoming-request" (type (sub resource))) (export (;1;) "response-outparam" (type (sub resource))) ) ) (import "wasi:http/types@0.2.0" (instance (;0;) (type 0))) (core module (;0;) (type (;0;) (func (param i32 i32))) (export "cm32p2|wasi:http/incoming-handler@0.2|handle" (func $handle)) (func $handle (;0;) (type 0) (param i32 i32) return ) ) (core instance (;0;) (instantiate 0)) (alias export 0 "incoming-request" (type (;1;))) (type (;2;) (own 1)) (alias export 0 "response-outparam" (type (;3;))) (type (;4;) (own 3)) (type (;5;) (func (param "request" 2) (param "response-out" 4))) (alias core export 0 "cm32p2|wasi:http/incoming-handler@0.2|handle" (core func (;0;))) (func (;0;) (type 5) (canon lift (core func 0))) (alias export 0 "incoming-request" (type (;6;))) (alias export 0 "response-outparam" (type (;7;))) (component (;0;) (import "import-type-incoming-request" (type (;0;) (sub resource))) (import "import-type-response-outparam" (type (;1;) (sub resource))) (import "import-type-incoming-request0" (type (;2;) (eq 0))) (type (;3;) (own 2)) (import "import-type-response-outparam0" (type (;4;) (eq 1))) (type (;5;) (own 4)) (type (;6;) (func (param "request" 3) (param "response-out" 5))) (import "import-func-handle" (func (;0;) (type 6))) (export (;7;) "incoming-request" (type 0)) (export (;8;) "response-outparam" (type 1)) (type (;9;) (own 7)) (type (;10;) (own 8)) (type (;11;) (func (param "request" 9) (param "response-out" 10))) (export (;1;) "handle" (func 0) (func (type 11))) ) (instance (;1;) (instantiate 0 (with "import-func-handle" (func 0)) (with "import-type-incoming-request" (type 6)) (with "import-type-response-outparam" (type 7)) (with "import-type-incoming-request0" (type 1)) (with "import-type-response-outparam0" (type 3)) ) ) (export (;2;) "wasi:http/incoming-handler@0.2.0" (instance 1)) )
alexcrichton commented on PR #10256:
I think the difference between binaries is
panic=abortas thewasmtimeexecutable has that set in CI which is probably what causes an abort.For the test here could the output of
finish()be inspected to ensure that "panicked" doesn't show up? Or basically assert that it has the expected output? (ideally empty or just a warning or similar)
primoly updated PR #10256.
alexcrichton submitted PR review.
alexcrichton commented on PR #10256:
@primoly would you like some help in debugging the CI failure?
primoly requested fitzgen for a review on PR #10256.
primoly requested wasmtime-compiler-reviewers for a review on PR #10256.
primoly requested wasmtime-default-reviewers for a review on PR #10256.
primoly updated PR #10256.
primoly closed without merge PR #10256.
primoly commented on PR #10256:
I think I just broke the PR. I’ll open a new one.
I don’t understand how Git works, sorry ._.
Last updated: Dec 06 2025 at 06:05 UTC