Skip to content

SIGILL when using abort-on-uncaught-exception #14060

Closed
@AndreasMadsen

Description

@AndreasMadsen
  • Version: master (8b2c61c)
  • Platform: posix
  • Subsystem: NA

test case:

'use strict';
const assert = require('assert');
const { spawnSync } = require('child_process');

const child = spawnSync(process.execPath, ['--abort-on-uncaught-exception', '-e', 'throw new Error();']);
assert.strictEqual(child.signal, 'SIGABRT'); // bug, the return signal is SIGILL
assert.strictEqual(child.code, null);

When using --abort-on-uncaught-exception and an error throws, the process should exit with SIGABRT instead it exists with SIGILL (illegal instruction). When using process.abort() directly the process exits with SIGABRT as it should.

This is the abort message:

Uncaught Error

FROM
[eval]:1:1
ContextifyScript.Script.runInThisContext (vm.js:1:1)
Object.runInThisContext (vm.js:1:1)
Object.<anonymous> ([eval]-wrapper:1:1)
Module._compile (module.js:1:1)
evalScript (bootstrap_node.js:1:1)
startup (bootstrap_node.js:1:1)
bootstrap_node.js:1:1
Received signal 4 <unknown> 000100c40b92

==== C stack trace ===============================

 [0x000100c3f9c4]
 [0x7fffc7388bba]
 [0x7fff5fbfd7e0]
 [0x00010092034b]
 [0x3c3dde7043fd]
 [0x3c3dde807c7a]
 [0x3c3dde7bbe7c]
[end of stack trace]

Metadata

Metadata

Assignees

No one assigned

    Labels

    post-mortemIssues and PRs related to the post-mortem diagnostics of Node.js.v8 engineIssues and PRs related to the V8 dependency.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions