summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlegendecas <legendecas@gmail.com>2021-06-10 23:55:54 +0800
committerMichaƫl Zasso <targos@protonmail.com>2021-09-03 14:38:33 +0200
commitf69c934ad4f7fe78decca7cfd796ba887246fa75 (patch)
tree3f3b7c7e1b8ae01eea09aed667b14c403343ea9c /src
parent99493b07d400ecaf813433a128c60ec90a3c68fc (diff)
downloadnode-new-f69c934ad4f7fe78decca7cfd796ba887246fa75.tar.gz
report: generates report on threads with no isolates
PR-URL: https://github.com/nodejs/node/pull/38994 Backport-PR-URL: https://github.com/nodejs/node/pull/39515 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/node_errors.cc9
-rw-r--r--src/node_report.cc20
2 files changed, 14 insertions, 15 deletions
diff --git a/src/node_errors.cc b/src/node_errors.cc
index 786e4153f2..c05bf1732b 100644
--- a/src/node_errors.cc
+++ b/src/node_errors.cc
@@ -424,13 +424,10 @@ void OnFatalError(const char* location, const char* message) {
}
Isolate* isolate = Isolate::GetCurrent();
- // TODO(legendecas): investigate failures on triggering node-report with
- // nullptr isolates.
- if (isolate == nullptr) {
- fflush(stderr);
- ABORT();
+ Environment* env = nullptr;
+ if (isolate != nullptr) {
+ env = Environment::GetCurrent(isolate);
}
- Environment* env = Environment::GetCurrent(isolate);
bool report_on_fatalerror;
{
Mutex::ScopedLock lock(node::per_process::cli_options_mutex);
diff --git a/src/node_report.cc b/src/node_report.cc
index 13f87b1e52..a91d16d5f1 100644
--- a/src/node_report.cc
+++ b/src/node_report.cc
@@ -267,20 +267,22 @@ static void WriteNodeReport(Isolate* isolate,
PrintVersionInformation(&writer);
writer.json_objectend();
- writer.json_objectstart("javascriptStack");
- // Report summary JavaScript error stack backtrace
- PrintJavaScriptErrorStack(&writer, isolate, error, trigger);
+ if (isolate != nullptr) {
+ writer.json_objectstart("javascriptStack");
+ // Report summary JavaScript error stack backtrace
+ PrintJavaScriptErrorStack(&writer, isolate, error, trigger);
- // Report summary JavaScript error properties backtrace
- PrintJavaScriptErrorProperties(&writer, isolate, error);
- writer.json_objectend(); // the end of 'javascriptStack'
+ // Report summary JavaScript error properties backtrace
+ PrintJavaScriptErrorProperties(&writer, isolate, error);
+ writer.json_objectend(); // the end of 'javascriptStack'
+
+ // Report V8 Heap and Garbage Collector information
+ PrintGCStatistics(&writer, isolate);
+ }
// Report native stack backtrace
PrintNativeStack(&writer);
- // Report V8 Heap and Garbage Collector information
- PrintGCStatistics(&writer, isolate);
-
// Report OS and current thread resource usage
PrintResourceUsage(&writer);