-
Notifications
You must be signed in to change notification settings - Fork 244
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
improvement CLDSRV-466 add timestamp for exceptions #5406
improvement CLDSRV-466 add timestamp for exceptions #5406
Conversation
Hello tmacro,My role is to assist you with the merge of this Status report is not available. |
Request integration branchesWaiting for integration branch creation to be requested by the user. To request integration branches, please comment on this pull request with the following command:
Alternatively, the |
/create_integration_branches |
Integration data createdI have created the integration data for the additional destination branches.
The following branches will NOT be impacted:
You can set option
The following options are set: create_integration_branches |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following options are set: create_integration_branches |
index.js
Outdated
* Catch uncaught exceptions and add timestamp to aid debugging | ||
*/ | ||
process.on('uncaughtException', err => { | ||
process.stderr.write(`${new Date().toISOString()} ${err.stack}`); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the exception backtrace is multi-line, I'd recommend for readability to add short context info around the timestamp, followed by a newline, then the exception backtrace. This way the first backtrace line is aligned with the other lines.
Here's what I'm thinking about:
process.stderr.write(`${new Date().toISOString()}: Uncaught exception: \n${err.stack}`);
/** | ||
* Catch uncaught exceptions and add timestamp to aid debugging | ||
*/ | ||
process.on('uncaughtException', err => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to also catch the rejections?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's been a long time but this does catch rejections as well
* Catch uncaught exceptions and add timestamp to aid debugging | ||
*/ | ||
process.on('uncaughtException', err => { | ||
process.stderr.write(`${new Date().toISOString()}: Uncaught exception: \n${err.stack}`); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will change the service behavior in case of error right? Like, we won't crash, and we won't end the current request either, is that what we want? Maybe I'm missing something here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's what I thought too, but from observation he worker still exits after the message is printed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
old PR, but the worker exits because he adds its own listener (
Lines 82 to 91 in 4f7aa54
process.on('uncaughtException', err => { | |
// If just send the error object results in empty | |
// object on server log. | |
logger.fatal('caught error', { | |
error: err.message, | |
stack: err.stack, | |
workerId: this.worker ? this.worker.id : undefined, | |
workerPid: this.worker ? this.worker.process.pid : undefined, | |
}); | |
this.caughtExceptionShutdown(); |
However the primary (that uses fork and has the monitoring server for prom metrics) don't have another listener, so this is keep the primary up in undefined state if an exception is caught
1f73366
to
b1b2d2a
Compare
/reset |
Reset completeI have successfully deleted this pull request's integration branches. The following options are set: create_integration_branches |
Integration data createdI have created the integration data for the additional destination branches.
The following branches will NOT be impacted:
You can set option
The following options are set: create_integration_branches |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following options are set: create_integration_branches |
/approve |
In the queueThe changeset has received all authorizations and has been added to the The changeset will be merged in:
The following branches will NOT be impacted:
There is no action required on your side. You will be notified here once IMPORTANT Please do not attempt to modify this pull request.
If you need this pull request to be removed from the queue, please contact a The following options are set: approve, create_integration_branches |
I have successfully merged the changeset of this pull request
The following branches have NOT changed:
Please check the status of the associated issue CLDSRV-466. Goodbye tmacro. |
Adds a timestamp to uncaught exceptions to aid in debugging.