Skip to content

[47.0.x] Backport some component-model-async fixes#13924

Merged
alexcrichton merged 3 commits into
bytecodealliance:release-47.0.0from
alexcrichton:backports
Jul 21, 2026
Merged

[47.0.x] Backport some component-model-async fixes#13924
alexcrichton merged 3 commits into
bytecodealliance:release-47.0.0from
alexcrichton:backports

Conversation

@alexcrichton

Copy link
Copy Markdown
Member

This is a backport of #13871 and #13914 for issues that have blocked the update to 47.0.0 in Spin. I plan on making a 47.0.2 release after this merges.

…#13871)

This commit fixes two (known) issues with call hooks. The first is a
long-standing issue where when Wasmtime yielded due to fuel or epochs
the call hooks were not invoked. If hosts were using call hooks to track
time executed in a guest, for example, then that would lead to
inaccuracies. The second is with component-model-async fiber switches
weren't correctly accounted for in terms of the call hook machinery
which could lead results to get mixed up.

The fix for both here is the same which is to sink the invocation of
call hooks far down into the stack such that they cannot be forgotten
when the guest exits to the host. This moves manual invocations, for
example, on host functions to instead one central location that handles
both host functions and libcalls.

Closes bytecodealliance#13870
…#13914)

An async-delivered event caused `future.drop-writable` to raise a trap
when it shouldn't because the trap notification was delivered.
@alexcrichton
alexcrichton requested review from a team as code owners July 21, 2026 16:21
@alexcrichton
alexcrichton requested review from fitzgen and pchickey and removed request for a team July 21, 2026 16:21
@alexcrichton
alexcrichton merged commit 468c685 into bytecodealliance:release-47.0.0 Jul 21, 2026
390 of 392 checks passed
@alexcrichton
alexcrichton deleted the backports branch July 21, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants