alexcrichton assigned fitzgen to issue #11749.
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 backtraceI believe the cause of this is https://github.com/bytecodealliance/wasmtime/pull/11630 so cc @fitzgen
alexcrichton added the fuzz-bug label to Issue #11749.
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.
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
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 backtraceI 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