Skip to content

FatalException handler SIGABRT from throw with .stack getter error #25718

@Fishrock123

Description

@Fishrock123
node -e "throw { get stack() { throw new Error('weird throw but ok') } }"

FATAL ERROR: v8::ToLocalChecked Empty MaybeLocal.
...

As discovered in #25715 but not strictly related to.

This is the line in question from the abort:

env->stack_string()).ToLocalChecked();

Basically, node::FatalException doesn't handle deep errors from .stack getters.

This is a pretty messy problem to fully deal with. It is possible to have a situation of infinitely recursing .stack getter errors, theoretically at least.

That being said... I doubt that any significant number of people will ever actually run into the more problematic cases, or maybe even the simple case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues with confirmed bugs.processIssues and PRs related to the process subsystem.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions