Stream: git-wasmtime

Topic: wasmtime / issue #11295 pointer authentication failed on ...


view this post on Zulip Wasmtime GitHub notifications bot (Jul 22 2025 at 10:53):

brian14708 opened issue #11295:

Test Case

use wasmtime::*;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut tasks = tokio::task::JoinSet::<wasmtime::Result<()>>::new();
    let engine = Engine::new(Config::new().async_support(true))?;
    let wasm_bytes = &wat::parse_str(
        r#"
            (module
                (func $hello (import "host" "hello"))
                (func (export "run") (call $hello))
            )
        "#,
    )?;
    for i in 0..2 {
        let mut store = Store::new(&engine, ());
        let module = Module::new(&engine, wasm_bytes)?;
        let hello_func = Func::wrap_async(&mut store, move |_caller: Caller<'_, ()>, _args: ()| {
            Box::new(async move {
                println!("Instance {i}: Hello from async WASM!");
                tokio::time::sleep(tokio::time::Duration::from_millis(10)).await;
                println!("Instance {i}: After 1 ms sleep");
                Ok(())
            })
        });
        let instance = Instance::new_async(&mut store, &module, &[hello_func.into()]).await?;
        let run = instance.get_typed_func::<(), ()>(&mut store, "run")?;

        tasks.spawn(async move {
            for _i in 0..5 {
                run.call_async(&mut store, ()).await?;
            }
            Ok(())
        });
    }

    while let Some(result) = tasks.join_next().await {
        result??;
    }
    Ok(())
}

Steps to Reproduce

cargo build --target aarch64-linux-android
# run on android device

Expected Results

Instance 0: Hello from async WASM!
Instance 1: Hello from async WASM!
Instance 0: After 1 ms sleep
Instance 0: Hello from async WASM!
Instance 1: After 1 ms sleep
...

Actual Results

Instance 0: Hello from async WASM!
Instance 1: Hello from async WASM!
Illegal instruction

with lldb

Instance 0: Hello from async WASM!
Instance 1: Hello from async WASM!
Process 14726 stopped
* thread #2, name = 'tokio-runtime-w', stop reason = signal SIGILL: illegal operand
    frame #0: 0x00000055567db894 fiber-test`wasmtime_fiber_switch_34_0_2 + 100
fiber-test`wasmtime_fiber_switch_34_0_2:
->  0x55567db894 <+100>: autiasp
    0x55567db898 <+104>: ret

fiber-test`_$LT$core..result..Result$LT$T$C$F$GT$$u20$as$u20$core..ops..try_trait..FromResidual$LT$core..result..Result$LT$core..convert..Infallible$C$E$GT$$GT$$GT$::from_residual::h0eebfda855441d32:
    0x55567db89c <+0>:   sub    sp, sp, #0x20
    0x55567db8a0 <+4>:   mov    x9, x8

Versions and Environment

Wasmtime version or commit: 34.0.2

Operating system: Android 14

Architecture: aarch64

view this post on Zulip Wasmtime GitHub notifications bot (Jul 22 2025 at 10:53):

brian14708 added the bug label to Issue #11295.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 22 2025 at 16:02):

alexcrichton commented on issue #11295:

Thanks for the report! I'll note that aarch64-linux-android is a Tier 3 target for Wasmtime of which we have no maintainer of. While Wasmtime builds there we don't have an expert who's around to answer questions like this, so debugging this with the help of others would be greatly appreciated!

view this post on Zulip Wasmtime GitHub notifications bot (Jul 31 2025 at 16:46):

fitzgen added the cranelift:area:aarch64 label to Issue #11295.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 31 2025 at 16:46):

fitzgen added the wasmtime:platform-support label to Issue #11295.


Last updated: Dec 06 2025 at 07:03 UTC