-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Does not die on error when big WASM module is loaded #3498
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
Comments
Worth noting this is not limited to WASM import syntax, but also normal const mod = await WebAssembly.compile(Deno.readFileSync("./big.wasm"));
console.log(mod);
throw new Error("Does not die :("); Execution output:
|
Fun fact: it is stuck at pub fn print_err_and_exit(err: ErrBox) {
eprintln!("{}", err.to_string());
std::process::exit(1); // <-- ! This line
} It turns out that using On macOS, here seems to be a Also investigating through Likely stuck halfway during some destructor, possibly one of them is calling |
Dump backtrace of where this
Looks like this is from destruction of |
@ry regarding #3521, I did some further investigation and found the following: From the error message:
The error says the WASM compiler expected This error seems to only occur when downloading the WASM via http in an import statement. So it's probably somewhat different from the issue at exit. |
regarding the previous comment see #3528 😅 |
Is this still an issue? It seems like this problem is fixed in the latest release (0.29), but wanted to double check before closing the issue. |
Should we add a test to avoid regression? |
WASM imports were removed before 1.0, so I'm going to close this issue as no longer relevant. |
There seems to be an issue where Deno does not exit correctly if an uncaught exception occurs and a big WASM module was imported.
This seems to happen for modules around
100K
and bigger (from testing on my machine, vary the10000
in for loop to get different size binary).Note: I ran across the issue while working on: https://github.com/dyedgreen/deno-sqlite, which uses a binary of around 1MB.
Steps to reproduce:
deno big.js
Needed files
The text was updated successfully, but these errors were encountered: