-
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
Spurious segfault when generating a backtrace on a trap #1295
Comments
Oh also for posterity, the (module
(func (export "_start")
unreachable
)
) |
@sunfishcode pointed me at rust-lang/rust#69533 which looks about right. The failing instruction is |
It looks like this isn't just isolated to debug builds, even release builds are failing with a stack trace that looks like:
which is actually sort of crazy! We try to avoid having the dynamic symbol loader activate while in a signal handler, but this is resolving the symbol |
This is perhaps another point in favor of #900 where we don't execute segfault code on the sigaltstack. We're executing quite a lot of code clearly which is blown the sigaltstack set up by libstd (which is prety small by default). I think it would be best to have segfault handlers execute on the main execution stack, allowing us to sidestep these sorts of issues. |
Adds many new operators and a few API changes.
Fixed in #1315 |
Investigating a spurious test failure I'm able to reproduce this locally on Linux with a script that looks like this:
I'm not really sure why concurrent execution of wasmtime is necessary, but I wasn't able to reproduce with only one wasmtime process at a time.
This almost instantly has one of the subprocesses segfault for me locally, and the core dump shows the stack trace looks like:
cc @yurydelendik it looks like this is something related to FDE information perhaps?
The text was updated successfully, but these errors were encountered: