Skip to content

Commit

Permalink
fix: event with invalid timestamp in trace log (electron#31349)
Browse files Browse the repository at this point in the history
When node is started within Electron's environment it doesn't
initialize v8 and time of v8's start is never set. As a result
we log v8's start time as 0 and it breaks timestamps in the
trace log. With this change we log v8's start time only when
it was initialized by node.
  • Loading branch information
CezaryKulakowski authored and t57ser committed Oct 27, 2021
1 parent 81b519f commit ae6cdb8
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
1 change: 1 addition & 0 deletions patches/node/.patches
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ add_should_read_node_options_from_env_option_to_disable_node_options.patch
repl_fix_crash_when_sharedarraybuffer_disabled.patch
fix_readbarrier_undefined_symbol_error_on_woa_arm64.patch
chore_fix_-wimplicit-fallthrough.patch
fix_event_with_invalid_timestamp_in_trace_log.patch
28 changes: 28 additions & 0 deletions patches/node/fix_event_with_invalid_timestamp_in_trace_log.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Cezary Kulakowski <cezary@openfin.co>
Date: Fri, 8 Oct 2021 11:18:58 +0200
Subject: fix: event with invalid timestamp in trace log

When node is started within Electron's environment it doesn't
initialize v8 and time of v8's start is never set. As a result
we log v8's start time as 0 and it breaks timestamps in the
trace log. With this change we log v8's start time only when
it was initialized by node.

diff --git a/src/env.cc b/src/env.cc
index 16af6aec3791df1363682f1ed024c52208b9a8f6..ada0faa93bc223ffbea79a4308796df73ea8ae4e 100644
--- a/src/env.cc
+++ b/src/env.cc
@@ -461,8 +461,10 @@ void Environment::InitializeMainContext(Local<Context> context,
environment_start_time_);
performance_state_->Mark(performance::NODE_PERFORMANCE_MILESTONE_NODE_START,
per_process::node_start_time);
- performance_state_->Mark(performance::NODE_PERFORMANCE_MILESTONE_V8_START,
- performance::performance_v8_start);
+ if (per_process::v8_initialized) {
+ performance_state_->Mark(performance::NODE_PERFORMANCE_MILESTONE_V8_START,
+ performance::performance_v8_start);
+ }
}

Environment::~Environment() {

0 comments on commit ae6cdb8

Please sign in to comment.