diff --git a/patches/node/.patches b/patches/node/.patches index d34ef274bcc1e..685f465f0bbc5 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -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 diff --git a/patches/node/fix_event_with_invalid_timestamp_in_trace_log.patch b/patches/node/fix_event_with_invalid_timestamp_in_trace_log.patch new file mode 100644 index 0000000000000..f99fb893729d4 --- /dev/null +++ b/patches/node/fix_event_with_invalid_timestamp_in_trace_log.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Cezary Kulakowski +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, + 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() {