Stream: git-wasmtime

Topic: wasmtime / issue #11749 Panic performing reverse-map of p...


view this post on Zulip Wasmtime GitHub notifications bot (Sep 28 2025 at 03:32):

alexcrichton assigned fitzgen to issue #11749.

view this post on Zulip Wasmtime GitHub notifications bot (Sep 28 2025 at 03:32):

alexcrichton opened issue #11749:

This input:

(module
  (type $a (array (mut i64)))
  (elem declare externref)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func $f2
    (local (ref null any))
    data.drop 0
    call $f2

    local.get 0
    ref.test nullref
    unreachable
  )
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func (export "") unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func (export "entry") (result externref)
    call $f1

    i32.const 0
    array.new_default $a
    i32.const 0
    array.new_default $a
    elem.drop 0
    unreachable
  )
  (func $f1 call $f2 call $f2)
  (data)
)

fails with this command:

$ cargo run run -Ccache=n --target pulley64 -Oopt-level=0 -Wfunction-references=y -Wgc=y -Wunknown-imports-default --invoke entry testcase0.wat
...

thread 'main' panicked at crates/environ/src/builtin.rs:353:1:
assertion failed: i < Self::len()
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I believe the cause of this is https://github.com/bytecodealliance/wasmtime/pull/11630 so cc @fitzgen

view this post on Zulip Wasmtime GitHub notifications bot (Sep 28 2025 at 03:32):

alexcrichton added the fuzz-bug label to Issue #11749.

view this post on Zulip Wasmtime GitHub notifications bot (Sep 28 2025 at 03:33):

alexcrichton commented on issue #11749:

The test here is super brittle and I did my best to reduce it but was unable to go much further. I've written a more custom test at https://github.com/bytecodealliance/wasmtime/pull/11750 which reproduces this at a much lower level much quicker.

@fitzgen would you be ok looking into this? I'm assuming the index bits are fresh enough in your head it might be easier that way, but I can also give it a stab too.

view this post on Zulip Wasmtime GitHub notifications bot (Sep 29 2025 at 17:23):

fitzgen commented on issue #11749:

@fitzgen would you be ok looking into this? I'm assuming the index bits are fresh enough in your head it might be easier that way, but I can also give it a stab too.

Yeah I can look into this, thanks for the ping

view this post on Zulip Wasmtime GitHub notifications bot (Sep 30 2025 at 19:22):

fitzgen closed issue #11749:

This input:

(module
  (type $a (array (mut i64)))
  (elem declare externref)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func $f2
    (local (ref null any))
    data.drop 0
    call $f2

    local.get 0
    ref.test nullref
    unreachable
  )
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func (export "") unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func unreachable)
  (func (export "entry") (result externref)
    call $f1

    i32.const 0
    array.new_default $a
    i32.const 0
    array.new_default $a
    elem.drop 0
    unreachable
  )
  (func $f1 call $f2 call $f2)
  (data)
)

fails with this command:

$ cargo run run -Ccache=n --target pulley64 -Oopt-level=0 -Wfunction-references=y -Wgc=y -Wunknown-imports-default --invoke entry testcase0.wat
...

thread 'main' panicked at crates/environ/src/builtin.rs:353:1:
assertion failed: i < Self::len()
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I believe the cause of this is https://github.com/bytecodealliance/wasmtime/pull/11630 so cc @fitzgen


Last updated: Dec 06 2025 at 06:05 UTC