-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
Investigate persistent Windows test failure on test.wasi/test-return-on-exit #37374
Comments
Refs: #36139 (comment) |
@nodejs/platform-windows |
Since this apparently started happening with the V8 update to 8.8: @nodejs/v8 |
Also @nodejs/wasi |
There's probably a real bug somewhere, because this only happens on a 32 bit system. |
Any thoughts on how we can make some progress on this? |
@gengjiawen Any ideas on what to do here? |
@nodejs/testing Any ideas for what we might be able to do in CI or elsewhere to figure this out? |
I agree that this is probably a genuine bug since it only shows up on 32-bit Windows, and coincided with the V8 8.8 update (which had wasm related changes). The Regarding the test - as a last resort, we could skip it on Windows. It looks like there are two test cases in |
I re-ran the Windows CI a couple times as well. All failures were in // Flags: --experimental-wasi-unstable-preview1
'use strict';
const common = require('../common');
const assert = require('assert');
const fs = require('fs');
const path = require('path');
const { WASI } = require('wasi');
const wasmDir = path.join(__dirname, 'wasm');
const modulePath = path.join(wasmDir, 'exitcode.wasm');
const buffer = fs.readFileSync(modulePath);
(async () => {
// Verify that if a WASI application throws an exception, Node rethrows it
// properly.
const wasi = new WASI({ returnOnExit: true });
wasi.wasiImport.proc_exit = () => { throw new Error('test error'); };
const importObject = { wasi_snapshot_preview1: wasi.wasiImport };
const { instance } = await WebAssembly.instantiate(buffer, importObject);
assert.throws(() => {
wasi.start(instance);
}, /^Error: test error$/);
})().then(common.mustCall()); The main difference here is that |
I noticed another small difference that shouldn't have any impact. In the flaky test, the |
Starting with the V8 8.8 update, this test has been regularly crashing with an out of memory error on 32-bit Windows. The issue has been narrowed down to a function not being bound. This seems like a V8 bug, but at least it seems that we can work around it. Fixes: nodejs#37374
Starting with the V8 8.8 update, this test has been regularly crashing with an out of memory error on 32-bit Windows. The issue has been narrowed down to a function not being bound. This seems like a V8 bug, but at least it seems that we can work around it. Fixes: #37374 PR-URL: #37615 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Michaël Zasso <[email protected]>
Starting with the V8 8.8 update, this test has been regularly crashing with an out of memory error on 32-bit Windows. The issue has been narrowed down to a function not being bound. This seems like a V8 bug, but at least it seems that we can work around it. Fixes: #37374 PR-URL: #37615 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Michaël Zasso <[email protected]>
https://ci.nodejs.org/job/node-test-binary-windows-js-suites/8229/RUN_SUBSET=3,nodes=win2012r2-COMPILED_BY-vs2019-x86/console and pretty much any other recent Jenkins CI run as the failure is persistent.
The text was updated successfully, but these errors were encountered: