In https://github.com/bytecodealliance/wasmtime/pull/8903 I was confused for quite a while why the first commit would cause a segfault. Turns out that it also segfaults with the current commit on the main branch. How did CI pass for it to be merged?
CI turns on optimizations and disables incremental for cross-compiled tests, which might explain a crash locally but not on CI?
The command you pasted in the PR passes locally for me though on main
so it may also depend on QEMU version? In the past that's sometimes been a bit finnicky as to some versions fault and some don't and we never bottomed it out
I got the crash for the main branch while running natively on arm64.
I was using debug mode with incr comp enabled though.
Reproduces in release mode too:
gh-bjorn3@dev-desktop-eu-1:~/wasmtime$ git rev-parse HEAD
9e22c4e762c78cb6273bb863dbbb03b7d9795e22
gh-bjorn3@dev-desktop-eu-1:~/wasmtime$ git status
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean
gh-bjorn3@dev-desktop-eu-1:~/wasmtime$ cargo test --release --test wast -- --format=pretty --test-threads 1 -- Cranelift/pooling/tests/misc_testsuite/custom-page-sizes/custom-page-sizes.wast
Finished `release` profile [optimized] target(s) in 0.27s
Running tests/wast.rs (target/release/deps/wast-18d73d9165bc244a)
running 1 test
test Cranelift/pooling/tests/misc_testsuite/custom-page-sizes/custom-page-sizes.wast ... error: test failed, to rerun pass `--test wast`
Caused by:
process didn't exit successfully: `/home/gh-bjorn3/wasmtime/target/release/deps/wast-18d73d9165bc244a --format=pretty --test-threads 1 -- Cranelift/pooling/tests/misc_testsuite/custom-page-sizes/custom-page-sizes.wast` (signal: 11, SIGSEGV: invalid memory reference)
Rebased https://github.com/bytecodealliance/wasmtime/pull/8903 to see if that is enough to make CI pass for it.
do you have anything in ~/.cargo/config.toml
that would affect codegen or something like that
on aarch64-apple-darwin the command above works for me
same commit
I don't have a ~/.cargo/config.toml
.
I'm running on linux.
on arm64 linux I can also reproduce by simply trying to instantiate this module
https://github.com/bytecodealliance/wasmtime/pull/8903 passes CI after the rebase.
I think CI passes due to WASMTIME_TEST_NO_HOG_MEMORY=1
, still digging
https://github.com/bytecodealliance/wasmtime/pull/8918 is at least one problem
Last updated: Dec 23 2024 at 14:03 UTC