mirror of
https://github.com/nodejs/node.git
synced 2024-11-24 20:29:23 +01:00
e65d189e50
Add regression tests for the case in which an async_hook is enabled
inside a Worker thread and `process.exit()` is called during the
async part of an async function.
This commit includes multiple tests that seem like they should all
crash in a similar way, but interestingly don’t. In particular, it’s
surprising that the presence of a statement after `process.exit()`
in a function has an effect on the kind of crash that’s being
exhibited (V8 DCHECK vs. assertion in our own code) and the
circumstances under which it crashes (e.g. the -1 and -2 tests
can be “fixed” by reverting 13c5a1629c
, although they
should have the same behavior as the -3 and -4 tests).
PR-URL: https://github.com/nodejs/node/pull/33347
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: David Carlier <devnexen@gmail.com>
16 lines
321 B
JavaScript
16 lines
321 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const { Worker } = require('worker_threads');
|
|
|
|
const w = new Worker(`
|
|
const { createHook } = require('async_hooks');
|
|
|
|
setImmediate(async () => {
|
|
createHook({ init() {} }).enable();
|
|
await 0;
|
|
process.exit();
|
|
});
|
|
`, { eval: true });
|
|
|
|
w.on('exit', common.mustCall());
|