-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix LLDB test failures after latest dependency version updates. #1813
Comments
We're temporarily avoiding CI failures by pinning versions in |
With a green master it's clear that
when we try to execute
I'm not really sure how the backtrace crate is related to this. Even the gimli/addr2line/object/etc updates don't seem to affect wasmtime since they're all on versions that wasmtime itself isn't using, only the backtrace crate is using them. @yurydelendik do you know where that error message may be coming from? |
@alexcrichton "backtrace" now indirectly depends on "gimli 0.21", I'm thinking it is what is giving an issue. I'm working on upgrading our "gimli 0.20" atm, though not sure why it is giving "Interpreter doesn't handle one of the expression's opcodes". |
I'm not sure why the gimli 0.21 dep would cause any issues though? That's exclusively used by the |
Me neither. But I would like to upgrade it anyway, but it is not easy. Too much API refactoring happened between 0.20 -> 0.21 . |
It is likely LLDB -- it cannot decode generated by wasmtime DWARF expression P.S. it is reason I'm connecting it with gimli |
It is limited to Linux platforms. Bisect points for rust-lang/backtrace-rs@5ad0b76 |
At this point it sounds like this is exposing a preexisting bug. The only real change in that commit which would affect this is that libbacktrace's C code is gone, and some new Rust code is pulled in. For these tests and LLDB I don't think any of that code is executed, but presumably the DWARF for wasmtime has changed, perhaps significantly, as a result. Would it make sense to try to track this down not as a regression in the |
@alexcrichton the problem is related to LLDB only (works on GDB). Running any
Which fails with the same error. Maybe one of the new modules contains unsupported DWARF data? P.S. also works in release mode, e.g. |
Adding to Cargo.toml:
allows test to past. Tested with lldb-10 for Ubuntu -- it works there too. (It was working for lldb-9 on MacOSX, not on Ubunty) If CI will start using lldb-10, the problem will go away. |
Nice find! I'd be fine taking care of the CI bits if you want to check in that fix to Cargo.toml? |
Sorry, there are two solutions above: fix in Cargo.toml or lldb-10. Moving CI to lldb-10 will completely fix the issue (without Cargo.toml change). |
So I thought LLDB 10 would be pretty easy to install from https://github.com/llvm/llvm-project/releases/tag/llvmorg-10.0.0, but unfortunately those tarballs don't contain lldb at all. They did for LLVM 9 though (?) |
Note that #1832 is going to update # Cargo.toml
[profile.dev.package.backtrace]
debug = false # FIXME(#1813) to temporarily work around these failures. We should remove that when properly fixing this bug. |
After #1805, we're seeing test failures like the following in
debug::lldb::test_debug_dwarf_ptr
:failures:
---- debug::lldb::test_debug_dwarf_ptr stdout ----
thread 'main' panicked at 'didn't pass check > (lldb) target create "/home/runner/work/wasmtime/wasmtime/target/debug/wasmtime"
The text was updated successfully, but these errors were encountered: