Skip to content

Conversation

@legendecas
Copy link
Member

@legendecas legendecas commented Aug 19, 2019

If terminating the process with ctrl-c / SIGINT, prints a JS stack trace leading up to the currently executing code.

The feature would be enabled under option --trace-sigint.

Conditions of no stacktrace on sigint:

  1. has (an) active sigint listener(s);
  2. main thread is idle (i.e. uv polling), a message instead of stacktrace would be printed.

Related: #24937

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines

@nodejs-github-bot nodejs-github-bot added the c++ Issues and PRs that require attention from people who are familiar with C++. label Aug 19, 2019
@mscdex
Copy link
Contributor

mscdex commented Aug 19, 2019

Maybe we should only print a stack trace if stdin is a TTY (especially if it's meant to only happen when pressing ctrl-c)?

@devsnek devsnek added the wip Issues and PRs that are still a work in progress. label Aug 19, 2019
Copy link
Member

@bnoordhuis bnoordhuis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some comments but nice work!

@legendecas legendecas force-pushed the issue-24937 branch 3 times, most recently from 503aca6 to f175639 Compare August 24, 2019 13:14
@legendecas legendecas changed the title cli: make ^C print a JS stack trace report: make ^C print a JS stack trace Aug 24, 2019
Copy link
Member

@addaleax addaleax left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

report: is the subsystem for the node-report feature, i.e. node --experimental-report … this touches a related topic, but I think it might be confusing to name it that way

@legendecas
Copy link
Member Author

report: is the subsystem for the node-report feature, i.e. node --experimental-report … this touches a related topic, but I think it might be confusing to name it that way

Yes, this work doesn't touch report specifically in codebase. Yet I don't find a more proper subsystem here https://github.com/nodejs/core-validate-commit/blob/master/lib/rules/subsystem.js . Since both src and lib are touched in this work, neither of those one might be appropriate IMO.

@addaleax
Copy link
Member

@legendecas You can also use src,lib: .... 🙂 Honestly, I don’t have a better idea than that either.

@legendecas legendecas changed the title report: make ^C print a JS stack trace src,lib: make ^C print a JS stack trace Aug 24, 2019
@legendecas legendecas force-pushed the issue-24937 branch 2 times, most recently from 3797e8e to 822e56a Compare August 24, 2019 14:13
@legendecas legendecas force-pushed the issue-24937 branch 2 times, most recently from 124c8c3 to b7ccab2 Compare August 24, 2019 16:44
@legendecas
Copy link
Member Author

I think this PR is out of WIP, ready to be reviewed thoroughly :)

@addaleax addaleax removed the wip Issues and PRs that are still a work in progress. label Aug 24, 2019
@nodejs-github-bot
Copy link
Collaborator

@addaleax
Copy link
Member

@addaleax
Copy link
Member

@legendecas Looks like there are still issues with the postmortem tests…

@legendecas
Copy link
Member Author

@legendecas Looks like there are still issues with the postmortem tests…

I'll try to fix it :P

@Fishrock123 Fishrock123 removed their request for review January 14, 2020 19:49
@Fishrock123
Copy link
Contributor

Fishrock123 commented Jan 14, 2020

I don't have any substantive opinions for this.

@legendecas
Copy link
Member Author

Since there are no objections anymore and multiple approves, I'd tag this as author-ready.

@legendecas legendecas added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Jan 17, 2020
If terminating the process with ctrl-c / SIGINT, prints a JS stacktrace
leading up to the currently executing code.

The feature would be enabled under option --trace-sigint.

Conditions of no stacktrace on sigint:

- has (an) active sigint listener(s);
- main thread is idle (i.e. uv polling), a message instead of stacktrace
  would be printed.
@legendecas legendecas removed the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Jan 25, 2020
@legendecas
Copy link
Member Author

Rebased to resolve conflicts.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot
Copy link
Collaborator

@legendecas legendecas added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Jan 26, 2020
legendecas added a commit that referenced this pull request Jan 28, 2020
If terminating the process with ctrl-c / SIGINT, prints a JS stacktrace
leading up to the currently executing code.

The feature would be enabled under option `--trace-sigint`.

Conditions of no stacktrace on sigint:

- has (an) active sigint listener(s);
- main thread is idle (i.e. uv polling), a message instead of stacktrace
  would be printed.

PR-URL: #29207
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Christopher Hiller <boneskull@boneskull.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
@legendecas
Copy link
Member Author

Landed with 7b7e7bd 🎉

@legendecas legendecas closed this Jan 28, 2020
@legendecas legendecas deleted the issue-24937 branch January 28, 2020 05:54
@ruyadorno
Copy link
Member

ruyadorno commented Jan 28, 2020

/cc @nodejs/tooling this landed 🎉 yay! we might want to talk about it in the next tooling WG meeting

codebytere pushed a commit that referenced this pull request Feb 17, 2020
If terminating the process with ctrl-c / SIGINT, prints a JS stacktrace
leading up to the currently executing code.

The feature would be enabled under option `--trace-sigint`.

Conditions of no stacktrace on sigint:

- has (an) active sigint listener(s);
- main thread is idle (i.e. uv polling), a message instead of stacktrace
  would be printed.

PR-URL: #29207
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Christopher Hiller <boneskull@boneskull.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
@codebytere codebytere mentioned this pull request Feb 17, 2020
@targos targos removed the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Apr 25, 2020
targos pushed a commit to targos/node that referenced this pull request Apr 25, 2020
If terminating the process with ctrl-c / SIGINT, prints a JS stacktrace
leading up to the currently executing code.

The feature would be enabled under option `--trace-sigint`.

Conditions of no stacktrace on sigint:

- has (an) active sigint listener(s);
- main thread is idle (i.e. uv polling), a message instead of stacktrace
  would be printed.

PR-URL: nodejs#29207
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Christopher Hiller <boneskull@boneskull.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
targos pushed a commit that referenced this pull request Apr 28, 2020
If terminating the process with ctrl-c / SIGINT, prints a JS stacktrace
leading up to the currently executing code.

The feature would be enabled under option `--trace-sigint`.

Conditions of no stacktrace on sigint:

- has (an) active sigint listener(s);
- main thread is idle (i.e. uv polling), a message instead of stacktrace
  would be printed.

PR-URL: #29207
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Christopher Hiller <boneskull@boneskull.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
@orgads
Copy link
Contributor

orgads commented Jan 30, 2025

Is it possible to extend this also for sigterm (with a separate flag)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Issues and PRs that require attention from people who are familiar with C++. semver-minor PRs that contain new features and should be released in the next minor version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.